wernerkrauss / elemental-migration
一个用于将 Silverstripe 的 Elemental V1 (SS3) 迁移到 V2 (SS4) 及以上版本的迁移工具。
Requires
- php: >=7.1
- dnadesign/silverstripe-elemental: ^2.0 || ^3 || ^4
- dnadesign/silverstripe-elemental-virtual: ^1
- silverstripe/recipe-cms: ^4
Requires (Dev)
- phpunit/phpunit: ^5.7
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
运行任务
- 备份您的数据库
- 研究 Elemental 及其元素的变化
- 重命名已更改的元素表。这可能比依赖于内置的复制机制更安全。
- 运行任务,例如通过调用
/dev/tasks/Netwerkstatt-ElementalMigration-Task-ElementalMigration
- 享受吧!
它做什么
Elemental 1 (Silverstripe CMS 3) 基于 Widget 模块。从 Elemental 2 (Silverstripe CMS 4) 开始,它没有这个依赖。这也意味着数据库结构有一些重大变化。
迁移任务根据旧的 WidgetAreas 创建 ElementAreas,从 Widget 同步一些重要数据到 Element 表,更新 ClassNames,并可以从重命名的表中复制数据。它已对 Elemental 和 Elemental 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 问我编写此迁移任务并允许开源此模块。