Hi, I'm Tim Millwood. I am a Web Developer from Abergavenny, UK, and work for Mark Boulton Design, specializing in Drupal. This is my blog!
The perfect Drupal development environment
Since becoming a "professional" Drupal developer earlier this year one of the hardest things I have found within my team is best practices for Drupal development. When maintaining my blog or web startup all best practices go out the window. The approach taken is to SSH into the server, get all of drupal core and contrib using wget, do all main module and theme development on localhost then FTP them to the server. All other development is done using the Drupal UI on the live site, and via SSH using vi. This is not the way it can be done in an international organisation.
Over the last few months we have not launched any sites, but have been working on a large project. This project is currently hosted on an external development environment which we use in very much the same way as I manage my own sites. Now we are looking at more development, and launches onto a live site every few weeks we needed to start planning development a bit better. So... we called on Acquia and they sent Robert Douglass. We spent two days with Robert discussing our needs, thoughts and ideas, he then fed back with his experience.
Here's what we are planning to do...
- Store all code including core, contrib and custom modules in Subversion.
- Regularly dump the live database and store in Subversion.
- Maintain a local copy of the site for each developer from the latest development code and lastes live database on Subversion (refreshed weekly).
- Create a module to update the live database using the update function.
Creating a module to update the live database using the update function seemed a very radical idea when it was mentioned. It envolves creating an update function within the install.php of a custom module to set all the database settings, it can also be used to import CCK and views settings as well as run Devel macros. This enables us to run the site setup via update.php which will keep all out development and testing environments the same, without effecting any of the existing data. So although it sounds a little long winded it will mean we have a system that is guaranteed to work from day one, with all the content, users and translation all intact.
Another big decision is what development software to use, Eclipse? Komodo? Dreamweaver? Coda? We have currently been using Eclispse but found it very hard to setup, and everyone's install seems to be inconsistant, Komodo gets very good reviews, Dreamweaver doesn't seem suited, and I love Coda (I use it at home) but it's only Mac based, which isn't good in a 99.9% Windows based office. So I quess we will stumble on with Eclipse, whilst looking into Komodo a little more.
I'm sure I have left things out, and I'm sure others have different views. It would be great to hear your comments, thoughts and feedback.











