[wp-hackers] Deployment process (was Exporting Menus)
andrew at graymerica.com
Wed Sep 1 15:38:34 UTC 2010
capistrano is great tool but it does not address the issues with menus, widgets, urls and other data stored in the database and mixed with content. This content is out of date the moment you create a development database dump if you have an active site. Most of my big sites add 20+ posts per day for example.
Part of the great part of Wordpress is that it runs on a wide variety of platforms and does not require SSH access to install. My hope would be to create a solution that uses native php functions and those built into WP to deal with the staging issues.
The new menu system is great, but if you are unable to deploy a new menu, in any method other than manually creating it on a live site, it has marginal utility for high traffic and enterprise clients. The deployments should be able to be scripted, so you can test your deployment before you destroy a live site during a roll out.
I believe that all of these DB concerns can be addressed with no external code, but instead using the existing code base, actions and hooks and plugins. Us developers just need to come up with a solution. (some have great ideas for parts of it or code already in the field.)
I would never tell anyone not to develop tools that help with their own work flow, but deploying the static files for wordpress is the easy part, it is the database changes that can get really hairy,
This is a big enough issue for me that I am going to build my own tools, but I would love to work with a group of those with similar concern and get the blessing of the WP lead developers, so the solution can be as robust as possible.
Imagine if in addition to the updates for plugins and themes, there was a section for menu and widget set updates. Or if you could load in the changes via a file that you check in GIT/SVN or other source control. It sure would make those late night site roll outs smoother, instead of having to go over a check list of menus, widgets, and plugins to configure.
On a side note, does anyone know why the URL of images is stored in content and not just a relative link that starts with a slash? ( /wp-content/uploads/ )
More information about the wp-hackers