markjaquith / feedback

Ask @markjaquith anything!
42 stars 4 forks source link

Can the WordPress database be git-ified? #28

Closed cyberhobo closed 10 years ago

cyberhobo commented 10 years ago

I'm curious if you think these guys will hit any serious snags in their attempt to track changes to the database using git:

http://versionpress.net/

My first thought is that if it could be done efficiently there could be a lot of advantages, but I don't see how it would innately help with deploying configuration changes without catching content changes. Worth getting excited about?

soderlind commented 10 years ago

Have a look at http://wordpress.org/plugins/revisr/. It's free and it, among others, tracks changes to the database of your WordPress installation.

cyberhobo commented 10 years ago

Thanks, I'll check that out!

I see the answer to my question is clearly yes - you can dump the WordPress DB to SQL and track changes to it.

Will this help with the problem of separating configuration changes that we want to deploy like code from dev to staging to production from content changes that typically flow in the opposite direction?

I don't see that it makes that problem much easier to deal with.

markjaquith commented 10 years ago

It sounds like you want to "record" changes in dev/staging, and then replay those content changes in production...

I just so happen to be working on a plugin that does this. You can, for instance, install a plugin on dev, configure it, and then make a commit that has both the new plugin, the activation of the plugin, and the configuration of the plugin. So when you deploy to production, you get the code, the activation, and the setup. Would love to hear your thoughts on what things you'd like to support in that regard!

cyberhobo commented 10 years ago

I hoped you might have something in the works!

The best situation for me is when a plugin provides a configuration API that lets me override the GUI for any subset of its options. That way I can save a site's configuration in a small mu-plugin that I add to the git repo then revise, commit, and deploy easily.

So the magic I'd love to see is something that can provide a configuration API for any plugin that uses the WP options API. I've wondered before if this could be accomplished with existing options API filters. If I could hit a record button, save some options via the GUI, and get back a piece of code to override all the option changes I just made, that would be awesome. I imagine once that code is running the GUI would no longer work, but that would be acceptable to me.

There are a growing number of plugins that use custom post types for configuration. Those would confound the above approach. Some plugins that do that (I'm thinking of Advanced Custom Fields) do provide their own configuration API, thankfully.

In any case, I'd like to know what you come up with!

On Sat, Jun 28, 2014 at 3:45 PM, Mark Jaquith notifications@github.com wrote:

It sounds like you want to "record" changes in dev/staging, and then replay those content changes in production...

I just so happen to be working on a plugin that does this. You can, for instance, install a plugin on dev, configure it, and then make a commit that has both the new plugin, the activation of the plugin, and the configuration of the plugin. So when you deploy to production, you get the code, the activation, and the setup. Would love to hear your thoughts on what things you'd like to support in that regard!

— Reply to this email directly or view it on GitHub https://github.com/markjaquith/feedback/issues/28#issuecomment-47440628.