in2code/migration

任何类型的TYPO3迁移和导入框架。还可以从和到json文件导出和导入内容。

安装量: 52,510

依赖者: 4

建议者: 0

安全: 0

星标: 58

关注者: 7

分支: 17

开放问题: 2

类型:typo3-cms-extension

11.2.1 2024-06-07 08:56 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 并在其中 require in2code/migration
    • 安装此扩展(例如,在 require_dev 部分)
    • 开始为您的扩展添加自己的 Migrators 和 Importers(向您的扩展添加配置文件)
    • 然后尽情享受迁移、回滚数据库、更新脚本、再次迁移等
  • 完成

示例 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 显示和删除未使用的文件