Drupal 7 迁移模块显示"No migration groups defined" 。为什么我的迁移类没有注册?



我正在尝试使用Drupal migrate模块将内容(特别是用户帐户)从一个遗留站点迁移到Drupal 7中,但是由于某些原因,自定义站点迁移类没有注册。唯一表明有问题的是在运行drush migrate-status时缺少任何输出,并且在web浏览器中访问http://<drupal_root_url>/admin/content/migrate时输出"No migration groups defined"migratemigrate_uipinpics_migration模块都已通过Drupal 7管理仪表板启用。我尝试使用rush来清除所有缓存并注册迁移类,以及使用web UI注册迁移类,但无济于事。从包含settings.php文件/<drupal_root_path>/sites/default/

的文件夹中运行rush。
drush cc all && drush migrate-register && drush migrate-status

我有以下文件位于

/<drupal_root_path>/sites/all/modules/custom/pinpics_migration/
  • pinpics_migration.info
  • pinpics_migration.migrate.inc
  • pinpics_migration.module

我尝试将包含自定义迁移类实现pinpics_users.inc的文件放置在与上述文件相同的目录中,以及:

/<drupal_root_path>/includes/

文件内容如下:

pinpics_migration.info :

<?php
name = "Pinpics Migration"
description = "Module to migrate legacy site to Drupal 7 site"
package = "Migration"
core = 7.x
dependencies[] = migrate
files[] = pinpics_migration.module
files[] = pinpics_users.inc
?>

pinpics_migration.migrate.inc :

<?php
function pinpics_migration_migrate_api() {
    $api = array( 'api' => 2 );
    return $api;
}
?>

pinpics_migration.module :

<?php
define("SOURCE_DATABASE", "pinpics_db");
?>

pinpics_users。inc:(去掉一些辅助函数和具体的实现细节)

<?php
/// Stripped some helper functions that were used by pinpicsUserMigration::prepareRow() below
class pinpicsUserMigration extends Migration {
    public function __construct() {
        parent::__construct(MigrateGroup::getInstance('user_migration_group'));
        $this->description = t('Migrate pinpics.com users');
        $source_fields = array(
            'uid' => t('User ID'),
            'roles' => t('The set of roles assigned to a user.'),
            'password' => t('MD5 hash of User Password'),
            'email' => t('User email address'),
            'name' => t('Username'),
            'created' => t('Timestamp that legacy account was created.'),
            'status' => t('The staus of the User account'),
            'logintime' => t('Timestamp that the User last logged in.')
        );
        $query = db_select(SOURCE_DATABASE.'.users', 'u')
            ->fields('u', array('uid', 'roles', 'password', 'email', 'name', 'created', 'logintime', 'status'))
            ->condition('status', '0', '=')
            ->condition('inactive', '0', '=')
            ->condition('email', '', '<>')
            ->condition('loginip', '', '<>')
            ->orderBy('uid', 'ASC');
        $this->source = new MigrateSourceSQL($query, $source_fields);
        $this->destination = new MigrateDestinationUser(array('md5_passwords' => TRUE));
        $this->map = new MigrateSQLMap($this->machineName,
            array(
                'uid' => array(
                    'type' => 'int',
                    'unsigned' => TRUE,
                    'non null' => TRUE,
                    'description' => 'Legacy Unique User ID',
                    'alias' => 'u',
                )
            ),
            MigrateDestinationUser::getKeySchema()
        );
        $this->addFieldMapping('uid', 'uid');
        $this->addFieldMapping('name', 'name');
        $this->addFieldMapping('pass', 'password');
        /// Many addFieldMapping() statement stripped out for brevity.
    }
    public function prepareRow($current_row) {
        /// Stripped implementation details for massaging data to prepare for Drupal 7.
        return TRUE;
    }
}
?>

我是Drupal新手,一直在使用以下参考来实现迁移。

Drupal 6通过Migrate 2迁移到Drupal 7

迁移入门

有没有人遇到过这个问题,或者知道如何找出问题所在?

尝试以下步骤:

  • 访问您的站点模块页面/admin/modules来触发缓存PHP的重建。
  • 禁用并启用你的模块来注册一个新类

最新更新