undpaul / up-migrate
提供一些迁移插件和辅助工具
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';