I recently served as co-developer on an awesome new Drupal 7 project - migrating the Action Against Hunger organizational website from Drupal 6 to Drupal 7. Although I'd already built a simple D7 site from scratch (this one :-), this was my first sophisticated D7 production site. My primary responsibilities during the project were content migration and image management and I learned a lot, obviously, about the differences between D6 and D7.
Content migration was particularly tricky: the site had thousands of nodes of various content types being consolidated into several new unified content types. I used a combination of Feeds Importers, phpMyAdmin, OpenOffice.org, and custom MySQL scripts to finagle the data, including embedded HTML, from old D6 CCK nodetypes into new D7 nodetypes using custom Fields.
Image management was problematic -- we had hoped to use the Media module but the D7 port wasn't ready in time for our development cycle. Instead, we used a combination of Filefield, Filefield Sources, IMCE, and a lot of manual intern elbow grease to migrate hundreds of images into their new logically-organized image fields. I've since used Media on a different D7 site along with the above-mentioned modules -- it's pretty sweet!
Lessons learned, observations, and other notes:
- Teamwork played a crucial role here -- I was very fortunate to work with a rockstar development team, including Johanna Bates and Michelle Murrain. In addition, our client-side PM, Matt Koltermann, was fantastic and the rest of his team did a huge amount of manual work to adopt a new content classification scheme. Seriously - I couldn't have asked for better collaboration partners!
- Planning helped this project be the success that it was: Johanna is a great dev-side PM we all used our ticket tool (Redmine) intensively. In addition, Matt's team conducted an incredibly comprehensive content and image audit of the existing site which aided my migration efforts considerably!
- I feel that website builders are in a very awkward stage in the Drupal 7 adoption cycle. After building dozens of sites in D6, including some pretty sophisticated apps, I'm pretty spoiled by having a huge ecology of proven and relatively bug-free modules available for inclusion in my projects. So many of the D7 modules I've investigated this summer, regardless of their D7CX pledge, just aren't production-ready yet in my opinion. I'm not complaining! I know this takes time -- and Webchick recently wrote a great summary of the fantastic progress that has been made so far. Keep up the great work, Drupal devs! :-)
- Media.module is really cool now and I can't wait to build some new user-facing interfaces for file and image management. I've long relied on IMCE, integrated tightly with TinyMCE, for image management - and I still am for simple blog posts with inline images. But for proper image management, there are some fantastic things we can do in D7. I'll throw in a big caveat that between the various imagecache, filefield, file and image styles, and other image management modules, there are some heavy-duty challenges to get things set up properly.
I'm already working on the alphas for my next Drupal 7 client project -- after all the migration headaches we had on this project, successfully resolved though they were, I'm looking forward to some nice clean building from scratch! Big shout out to JB, MM, and Matt for all their help and fantastic work!