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.
Thursday, December 11, 2008
Friday, December 5, 2008
I need an assistant.
The amount of work I have just keeps growing. We spent several hours yesterday laying out the plan for the next six months for just one of the sites we're working on. At the end we decided it's time to hire a Jr. programmer to help out. So if there's any PHP programmers that want to work in what is probably the best environment I've ever worked, you need to contact me.
This crazy white board drawing is the plan for just one of the sites we're working on. There are at least three more, and possibly seven. We're using Joomla as a base (there's also a couple of RoR apps for support), but there's a lot of customization for each site. We're streaming video from Wowza on EC2, having to pull from several legacy databases, building a server cluster that can handle a tremendous amount of traffic, and generally having a great time doing it. It's a small team (and will stay that way), the hours are pretty flexible (I usually work from home at least one day a week), and the people are a lot of fun to be around.
If you're interested send a resume to bcatherall at theanimenetwork.com.
Subscribe to:
Posts (Atom)