undpaul/up-migrate

提供一些迁移插件和辅助工具

安装数: 6,691

依赖: 0

建议者: 0

安全性: 0

星标: 0

关注者: 5

分支: 1

开放问题: 0

类型:drupal-module

dev-8.x-3.x 2018-02-19 16:12 UTC

This package is auto-updated.

Last update: 2024-09-16 04:45:25 UTC


README

本项目旨在帮助您快速开始构建迁移。

安装

将项目克隆到您的Drupal安装的modules/custom目录中,并在模块目录中运行composer install

使用方法

up_migrate 包含一些用于构建迁移的基础类和工具。

ID映射

FastSql

由于由Migrate创建的映射表没有适当的唯一索引,ID映射 "fastsql" 修改了映射表的定义并添加了正确的索引。这显著提高了迁移性能。up_migrate 在没有为它们自己指定 idMap 属性的情况下,为所有迁移设置了 ID 映射。

源插件

up_migrate 包含一系列预定义的源插件。

SqlBase

抽象类 \Drupal\up_migrate\Plugin\migrate\source\SqlBase 旨在成为所有自定义迁移源类的父类。它允许在迁移 yml 文件中直接配置源。

migrate_plus.migration.{id}.yml 中的定义示例

source:
  table:
    name: users
    alias: u
    ids:
      uid: integer

这设置迁移源的基本表为名为 "users" 的表。可以使用别名 "u" 来引用该表,并且有一个名为 "uid" 的唯一键。

在自定义源插件(必须扩展 SqlBase)中的定义示例

/**
 * @MigrateSource(
 *   id = "upm_examples__user",
 *   table = {
 *     "name": "users",
 *     "alias": "u",
 *     "ids": {
 *       "uid": "integer"
 *     }
 *   }
 * )
 */

对于更复杂的ID定义,只需覆盖 getIds() 函数。

添加额外的数据库作为迁移源

通常,您希望从一个或多个现有数据库迁移数据到您的新的网站。为了能够在迁移中引用这些源数据库,只需运行以下 drush 命令

drush upm-da {key} {database name} --username={name} --password={password}

要获取有关命令及其选项的更多信息,请运行 drush help upm-da

在您的迁移 yml 文件中(或在您的源类中)设置要使用的数据库的键

source:
  key: 'database-key-from-above'

源插件 SqlBase 将自动切换到新数据库并从中获取所有数据。

流包装器

up_migrate 提供一个自定义只读流包装器,方便访问迁移所需的文件。

要将正确的目录设置到您的迁移文件中,请将以下代码添加到您的 settings.php

// Set private folder.
$settings['file_migration_source_path'] = '/path/to/migration/files';