Drupal Migration Advice
I've been building sites with Drupal for 4 years now. My main strength is in themeing and I can set up a Drupal site without too many probelms. Recently I upgraded our site from Drupal 5 to 6. In about a year we would like to migrate (rather than upgrade) to Drupal 7 to avoid the headaches with legacy DB tables.
I found the Migrate module, however it states that you should have a solid knowledge of OOP with PHP in order to use that. How extensive would your programming knowledge need to be to attempt a site migration for a moderately complex site?
Site specifics
- Drupal 6
- 2500 Nodes
- 6 Content types (podcasts, news, alerts, page, banner, webform)
- LDAP (50+ active users)
- Global redirect (heavily used. Need to keep redirects after migration)
- Server info
- MySQL 5
- PHP 5.3
I've read that "a site migration should be easy for a good programmer" but that doesn't tell me anything as I start out. I have solid HTML and CSS knowledge and I'm currently learning Javascript. I'm not expecting this to be an easy process but I have time to learn. If you were learning to program with PHP for the specific purpose of migrating a Drupal site, where would you start?
Thanks in advance,
Kevin
Comments
Learning to program w. PHP for the specific purpose of migration
I've done several migrations over the last few years and here are some thoughts from 'painful' experience.
Good news - You actually don't need to know that much PHP
Not so good news - Migration module is powerful but a little tricky to use.
Small migrations you can use the Migrate Module web site interface. Larger migrations command line (drush) is better 'cos you may run into time out and memory issues thro' the web site interface.
In Migrate module you create a script which uses a MySQL query to extract the data out of the database and then map to fields look at sites/all/modules/migrate/migrate_example/beer.inc
You should learn a little bit about creating MySQL queries. Set up a demo environment where you can you
use phpMyAdmin to write and test queries. Then you will have to convert that to a query in the migrate script.
1. I would start by downloading Quickstart (http://drupal.org/project/quickstart) as a development environment to your local machine. This gives you a pre-built development environment w. NetBeans and an integrated debugger.
2. For test purposes import a small subset of your data into a MySQL table. You'll spend a lot of time running and rolling back migrations as you test and refine your queries. If you use a subset it will save a lot of time.
3. Just start playing with it against site install that you have backed up and don't mind if it gets messed up.
4. Come back if you have questions..
Good luck
Ian
Thanks
Thanks for the advice. I'll check out Quickstart and read up on how to create MySQL queries. Now I have a place to start :)
Panels
I do have a question about migrating Panels. To this point I haven't used Panels on our site because I thought they would be a pain to migrate. They are pretty slick though and easy to use but not something we absolutely have to have. Largely I haven't introduced them because I suspect they will become the default content type of choice for a lot of people and I want to make sure I can migrate them first before giving users the option.
Can't really help with this - sorry
I'm not a Panels user, altho' I've heard really good things about it...
Ian
Panels Migration, D6 to D7
The syntax for panels has slightly changed from 6 to 7, but it is very manageable for upgrading/migrating. See http://krisarnold.com/2011/05/17/update-panels-layouts-from-drupal-6-to-7/
Hi, I hate this sort posts as
Hi, I hate this sort posts as krisarnold...grrr..
Views Data Export and Feeds module
As you have only 6 content types and 2500 nodes max, You can use below approach to migrate data easily.
1. Install views data export module in Drupal6 site
Using this module, create one view for each content type and configure export as xml or csv file of the view data.
2. Setup new Drupal7 instance and install Feeds module and using it
Using Feeds module, import the data (exported from d6 using views data exported) into each content type.
For users migration also, use the same approach. Export users data into csv/xml and then import into D7.
For Complete instructions with screenshots, refer below url there it is explained clearly.
http://adellefrank.com/blog/how-to-migrate-content-from-drupal6-to-drupal7-with-feeds-module
OR
You can use migrate d2d module, It has included new feature called migrate_d2d_ui for non techies which allows migration of content from d5 or d6 to d7 through UI.
https://www.drupal.org/project/migrate_d2d
Regards :)