in2code / migration
任何类型的TYPO3迁移和导入框架。还可以从和到json文件导出和导入内容。
11.2.1
2024-06-07 08:56 UTC
Requires
- php: ^7.4 || ^8.0
- ext-dom: *
- ext-json: *
- ext-libxml: *
- ext-pdo: *
- typo3/cms-core: ^11.5 || ^12.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.10
- phpmd/phpmd: ^2.8
- squizlabs/php_codesniffer: ^3.5
Replaces
- typo3-ter/migration: 11.2.1
This package is auto-updated.
Last update: 2024-09-06 08:13:41 UTC
README
描述
此扩展(EXT:migration)是基于CLI命令(为防止超时、提高性能等)的TYPO3更新和迁移助手扩展。
此扩展能为您做什么
- 迁移表值
- 导入其他表中的表值
- 端口:导出包含所有记录和文件的整个页面分支作为json
- 端口:导入整个页面分支,包含所有记录和文件从json导入到现有表中(并提供新的标识符和关系)
- 页面操作(移动、复制和删除)从CLI执行
此框架扩展帮助我们(in2code)在几个大型项目中迁移一些内容 - 例如。
- 旧的后端布局到新的后端布局
- tt_news到tx_news
- templatevoila到backendlayouts和gridelements
- mailform到powermail或mailform到表单
- 个别内容到不同的个别内容
注意:此扩展不是针对您的(例如)tt_news到tx_news迁移的现成扩展。在我看来,几乎不可能构建一个通用的迁移器扩展,它可以自动适应您的安装的所有需求。因为TYPO3实例可以以不同的方式构建,通常需要个别配置。
注意2:如果您想为此扩展迁移使用,您需要了解您的TYPO3实例的数据库结构。因为您必须自己设置迁移器和导入器(例如,您必须知道tt_news.title将迁移到tx_news_domain_model_news.title以进行新闻迁移等)。
一些命名约定
- 导入在这里表示:从旧表导入内容到新表(例如,从tt_news到tx_news_domain_model_news)
- 迁移在这里表示:迁移现有表中的现有记录(例如,在tt_content中从TemplaVoila到Gridelements)
介绍
TYPO3更新和迁移项目的可能路线图
如果您的迁移伴随着TYPO3更新(例如,从6.2到9.5等),您应该这样做
- 更新
- 从空数据库和新TYPO3 9.5开始,在其中构建一些测试页面上的功能
- 将您的小型测试实例中需要的功能添加到附加功能(如新闻、powermail、自己的内容元素等)
- 当然,我建议将完整的配置(TypoScript、TSConfig等)存储在扩展(站点包)中
- 准备
- 将旧数据库导入新实例
- 进行数据库比较(我建议使用包typo3_console为此从CLI执行此操作)
- 制作您的更新向导步骤(我还建议使用 typo3_console 包从 CLI 进行此操作)
- 迁移
- 导出您的新数据库
- 添加一个扩展(例如,键
migration_extend
),其中包含 composer.json 并在其中 requirein2code/migration
- 安装此扩展(例如,在 require_dev 部分)
- 开始为您的扩展添加自己的 Migrators 和 Importers(向您的扩展添加配置文件)
- 然后尽情享受迁移、回滚数据库、更新脚本、再次迁移等
- 完成
- 如果您已经完成并且结果良好,您可以直接删除这两个扩展
- 另请参阅 https://www.slideshare.net/einpraegsam/typo3-migration-in-komplexen-upgrade-und-relaunchprojekten-114716116
示例 CLI 命令
# Example migration
./vendor/bin/typo3 migration:migrate --configuration EXT:migration_extend/Configuration/Migration.php
# Example export into json file
./vendor/bin/typo3 migration:export 123 > /home/user/export.json
# Example import from json file
./vendor/bin/typo3 migration:import /home/user/export.json 123
请参阅文档以获取所有 CLI 命令的详细描述
文档
破坏性更改
- 更新到 7.6.0:这仅是一个小的破坏性更改,因为现在扩展中使用了带有配置数组的构造函数。如果您正在使用自己的属性助手并且重写了 __construct(),您现在也必须传递新变量。
变更日志
未来待办事项
- 迁移:将错误记录到文件
- 迁移:如果给定键未定义,则抛出错误
- 新功能:作为 CommandController 显示和删除未使用的文件