Thursday, December 11, 2008

Looking for community input on a development methodology issue.

I'm running into a development methodology issue and hope to solicit some advice from the developer community. We've got a fairly large Joomla site, several custom modules, and a lot of third party modules. Several developers are working on the code in a distributed environment. Each developer has their own local development install. We have a staging environment that mirrors the productions environment. We're using Git for source control and have no problems with the migration of code from one environment to another. Where we keep running into issues is with the DB changes.

With our custom modules the problem isn't as pronounced. We simply require an installation SQL script to be in each component and run this script when the component is installed in a new environment. We're even working on making this automated, and may adopt some of the RoR migration file methodology. Third party components on the other hand are a pain. It's nice to be able to just add functionality by installing a component, but every time we do we end up spending a lot of time tearing the component apart to find all the DB changes it does on install. We then take these changes and make a script in the same way as we do for our custom components.

So far this is the best methodology we've come up with. Anyone have any incite on a better way? I'd like to automate the build process as much as possible. We're doing continuous integration, but it breaks down when we have db changes. Is there a db comparison too out there that would allow us to compare a Development DB with the Staging DB, and would generate the SQL script? It would have to work with MySQL.

2 comments:

  1. Any luck on getting feedback on this? I'm trying to think of some good forums/blogs that would be useful to get this question out.

    ReplyDelete
  2. Not really. I've talked with some people off-line, and Have a couple of ideas, but nothing solid has come up.

    ReplyDelete