While simple migration projects may be accomplished purely through the administrative interference, complex real-world cases will require some programming. The migrate module, at its heart, is simply a framework for defining and performing migrations, which happens to come with default implementations for the most important core objects. Developers can use the same API as these default implementations to enhance migration to those objects, or to define other destinations.

Destinations

The migrate module supports the definition of different destination types - kinds of objects to be created in a migration. There is built-in support for nodes, users, comments, roles, and taxonomy terms - hooks can be defined for additional destination types.

Here are the steps we took to create the Role destination type. Your destination types will follow a similar pattern.

$tblinfo contains the meta-information on the content set, and $row is the source data for one object. An array of messages is returned - use migrate_message() to generate a message.

Content sets

A content set defines the migration from a set of source data (implemented as a view) into a given destination type. Content sets can be defined interactively or programmatically. The typical process to create a content set programmatically would be as follows: