wernerkrauss/elemental-migration

一个用于将 Silverstripe 的 Elemental V1 (SS3) 迁移到 V2 (SS4) 及以上版本的迁移工具。

安装: 169

依赖关系: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

dev-master 2020-03-03 17:10 UTC

This package is auto-updated.

Last update: 2024-08-29 05:38:55 UTC


README

一个用于将 Silverstripe 的 Elemental V1 (SS3) 迁移到 V2 (SS4) 及以上版本的迁移工具。使用风险自负!

安装

建议将此任务添加为开发要求;

composer require --dev wernerkrauss/elemental-migration

运行任务

  1. 备份您的数据库
  2. 研究 Elemental 及其元素的变化
  3. 重命名已更改的元素表。这可能比依赖于内置的复制机制更安全。
  4. 运行任务,例如通过调用 /dev/tasks/Netwerkstatt-ElementalMigration-Task-ElementalMigration
  5. 享受吧!

它做什么

Elemental 1 (Silverstripe CMS 3) 基于 Widget 模块。从 Elemental 2 (Silverstripe CMS 4) 开始,它没有这个依赖。这也意味着数据库结构有一些重大变化。

迁移任务根据旧的 WidgetAreas 创建 ElementAreas,从 Widget 同步一些重要数据到 Element 表,更新 ClassNames,并可以从重命名的表中复制数据。它已对 ElementalElemental Virtual 进行了测试

它不做什么

它不迁移 Elemental Virtual List

配置

对于更新 ClassName 属性,任务依赖于 SilverStripe\ORM\DatabaseAdmin.classname_value_remapping 配置。

如果表名已更改,您可以在运行 dev/build 之前重命名表(包括 Versions 和 Live 表),或者您可以通过将旧 => 新映射添加到 Netwerkstatt\ElementalMigration\Task\ElementalMigration.data_migration 来配置迁移任务,以将值复制到重命名的表中。此机制不会检查旧表中的每个字段是否存在于新表中,可能很容易损坏。

有关示例,请参阅 legacy.yml

感谢

非常感谢 Andy Adiwidjaja 问我编写此迁移任务并允许开源此模块。