A couple of days ago, I attended meetup in Boulder. I like to try and get to local meetups on a regular basis - they give me a chance to hear what others are doing in the community, shake some hands, and break bread. There was a discussion on responsive design and a couple of pretty cool related demos. All this inspired me to upgrade my site to D7. Fortunately, being between Examiner and starting with Trellon gave me some time to work on this project.
Step 1 - I needed a copy of the database. I used PHPMyAdmin on the site to export a copy of the database
Step 2 - On my localhost, I imported the database using Bigdump MySQL import tool.
Step 3 - I grabbed a copy of my Drupal site code and updated it and its contrib modules to the lastest versions in D6. Drupal 7 will not allow you to upgrade your instance of Drupal 6 to 7 unless you are at the latest security release.
Step 4 - I grabbed the latest version of D7 and the D7 equivalent versions of D7 contrib modules and went ahead and upgraded locally.
Step 5 - I started looking through a bunch of different contrib themes and finally settled on TouchPro.
Step 6 - Installed Backup and Migrate locally. This module allows you to backup and restore databases really quickly. I created a new MySQL database on my localhost, and backed up the database to that database. I pointed the settings.php file at the new instance of the database just to verify it would work.
Step 7 - I started the process of re-configuring the site. I also made some CSS additions to the theme to support padding, bordering, and background on images that have a "left" or "right" alignment in the tag. Mostly it was straight forward, but I did encounter a few interesting twists:
- Tokens in D7 have changed. This meant that the paths defined in Path for aliasing were all broken. If you are upgrading and find your self challenged because when defining your patterns for paths indicates you must have at least one token, take a look at this thread on Drupal.org.
- Default RSS feeds from core have changed a little bit. There also appears to be a bug that displays unpublished content in core feeds. The feed I have used to push to Planet Drupal is http://www.dogstar.org/drupal/taxonomy/term/6/0/feed - I needed to recreate this path. I used views and created a custom defined path for the new feed.
- XML Sitemap takes an extra push where you tell Drupal which sitemap it should update at admin/config/search/xmlsitemap.
Step 8 - I moved the Drupal files into a new directory on the server called drupal-upgrade.
Step 9 - I created a brand new database on the server - I left it empty
Step 10 - I used Backup and Migrate to grab a copy of my local version of the Website in D7
Step 11 - I set up a generic D7 instance on the production server and installed Backup and Migrate
Step 12 - I imported the dump of the local database and started testing on production
Step 13 - I changed the names of the directories so the new D7 site was under "drupal" instead of "drupal-upgrade"
This has the added benefit, that I can now use the two separate databases for upgrades, easily backing up the production DB to the staging DB.
This particular theme is responsive. A responsive theme looks at the pixel width of your window and resizes elements based on that pixel width. You can see below, how the page layout changes with different devices. The left rail ends up being added to the bottom of the page and images adjust to the width of the screen.