[Drupal Migration] Steps to Migrate Drupal 6 site to Drupal 7
Migrating or upgrading a Drupal website is a relatively easy process. But to any change there is a certain risk associated with it, more so in this case depending on the variability of content and complexity of theme. The least troublesome to migrate would be a site with little to no custom code or modules. But this wasn't the case for zyxware.com. This article outlines the migration process and links will be provided to detailed descriptions from all of these outlines.
This article clearly dictates a set of steps to follow for the migration of any Drupal 6 website to Drupal 7. These steps were designed from the steps followed to migrate zyxware.com as a lot of issues were faced due to the complexity of the site.
What is most necessary is to "know the website". Collect as much data as possible like, how many modules (custom or contrib), what is it used for, is it available in Drupal 7, if not, any alternatives for it, whether patches were created and so on. Obviously the live site would be set up locally first.
Things to remember before migration :
Always backup site and code. If you are using git, then the code is protected but the database is still at risk. Take a dump of the database before every step and maintain multiple backups with date on the name. When the site crashes, this saves a lot of time.
After every code update, run update.php. Only then the database gets updated.
Have a working drush and prefer it over other means.
Information is key! Collect all possible data about the website and log all errors.
Some modules may cause problem in local like captcha, cdn so on. Disable them on local.
Steps to migrate Drupal 6 to Drupal 7
- Collect Data
What is most necessary is to "know the website". Collect as much data as possible, like how many modules (custom or contrib), what is it used for, is it available in Drupal 7, if not any alternatives for it, whether patches were created and so on. This will be useful later when the site has been migrated and to check for missing modules. Detailed article for this step here.
- Drupal 6 core and contrib minor version upgrade
This may seem irrelevant, but is absolutely necessary as the minor versions may have database changes which maybe reflected in major upgrade. (Minor upgrade example : 6.11 to 6.19 and major upgrade example : 6.19 to 7.34). Detailed article for this step here.
- Drupal 6 core update to Drupal 7
This is probably the part that will crash your site, so proceed with extreme caution! Firstly, you have to disable all non core modules. After this, overwrite core with current stable version of Drupal 7 and update. The time taken to update will depend on the database size. Detailed article for this step here.
- Drupal 6 contrib modules update to Drupal 7
After the core update, the site will definitely be malfunctioning as expected, as long as it isn't WSOD, you're fine! Ignore it and move forward with the migration process. Download all the contrib modules and overwrite the existing modules and update. This is a time consuming process. Detailed article for this step here.
- Update custom modules to Drupal 7
If your website has any custom modules necessary for the functioning of this website, then refer the change log and update the custom code. Detailed article for this step here.
- Re-apply all relevant patches
Using the hacked module we can find out whether any modules have patches. If these patches are relevant in the new modules as well then apply the patches here as well. The patches which have relevance with respect to security must be re-applied. Usually in index.php, robots.txt and so on.
- Updating installed features
Safe practice is to always create and test views or types locally and then export these features to the live site or a dev site, if you have one. If you have a lot of features, re-creating them would be the best option.