承接 toumoro/tm-migration 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

toumoro/tm-migration

Composer 安装命令:

composer require toumoro/tm-migration

包简介

TYPO3 extension that brings together the tools used for a major TYPO3 migration.

README 文档

README

Latest Stable Version Total Downloads License

FR

Extension tm_migration

Une extension TYPO3 qui regroupe des outils essentiels pour faciliter les migrations majeures de TYPO3.

Dépendances

Package Version Compatibilité
typo3-fractor v0.5.1 12.4.0 & 13.4.0
typo3-rector 2.14.4 & v3.5.0 12.4.0 & 13.4.0
core-upgrader dev-release/v12 & dev-release/v13 12.4.0 & 13.4.0

Étapes

1. Installer l’extension via composer :

composer require toumoro/tm-migration --dev

2. Mettre à jour les dépendances Composer vers les dernières versions :

composer require $(composer show -s --format=json | jq '.requires | keys | map(.+" ") | add' -r)
composer require --dev $(composer show -s --format=json | jq '.devRequires | keys | map(.+" ") | add' -r)

3. Configurer l’extension dans config/system/settings.php :

'tm_migration' => [
    'cTypeToListTypeMappingArray' => 'pi_plugin1:new_content_element1',
    'disableTrucateLogUpgradeWizard' => '1',
    'numberOfDays' => '180',
    'upgradeWizards' => [
        'exlcuded' => 'fillTranslationSourceField',
        'fromVersion' => '9.5'
    ],
],

4. Copier le dossier de migration dans le répertoire racine de votre projet :

chmod +x vendor/toumoro/tm-migration/services/configure.sh
vendor/toumoro/tm-migration/services/configure.sh

5. Exporter les valeurs CType et list_type en JSON ou CSV (optionnel) :

  • Ces commandes d'export de CType/ListType préparent à l'éxécution des Ugrade Wizards.
  • Permet de générer le mapping de ListType vers CType afin de les préciser dans setting.php (tm_migration[cTypeToListTypeMappingArray]).
vendor/bin/typo3 tmexport:types -t [TYPE_FICHIER] -m [NOM_FICHIER]

Exemple pour CSV :

vendor/bin/typo3 tmexport:types -t csv -m types.csv

Exemple pour JSON :

vendor/bin/typo3 tmexport:types -t json

6. Corriger les relations MM en double (uniquement si nécessaire) :

  • 6.0. Exécuter la commande de correction des doublons MM :
    vendor/bin/typo3 tmupgrade:fixdatabaseerrors
  • 6.1. Exécuter la commande de update schema :
    vendor/bin/typo3 database:updateschema "*.add,*.change"

7. Exécuter les Upgrade Wizards :

vendor/bin/typo3 tmupgrade:run

8. Copier les fichiers de configuration Rector & Fractor dans votre projet :

cp vendor/toumoro/tm-migration/Resources/Private/Config/Rector/rector_v13.php .
cp vendor/toumoro/tm-migration/Resources/Private/Config/Fractor/fractor_v13.php .

9. Exécuter Rector & Fractor en mode simulation (dry-run) :

vendor/bin/rector process --debug --dry-run 2>&1 | tee rector-dryrun.txt
vendor/bin/fractor process --dry-run 2>&1 | tee fractor-dryrun.txt

10. Appliquer les correctifs de Rector & Fractor :

vendor/bin/rector process
vendor/bin/fractor process

Astuce : Utiliser --debug avec Rector évite les problèmes liés au traitement en parallèle.

11. Importer les fichiers SQL (avant et après la mise à jour du schéma de base de données) :

vendor/bin/typo3 tmupgrade:importsql -f [NOM_FICHIER]
vendor/bin/typo3 tmupgrade:importsql -d [REPERTOIRE]

Exemple :

vendor/bin/typo3 tmupgrade:importsql -f migration.sql
vendor/bin/typo3 tmupgrade:importsql -d before-updateschema

12. Séparer les entrées d’historique de sys_log (uniquement si vous migrez un site depuis une version TYPO3 < 9.5) :

vendor/bin/typo3 tmupgrade:seperate-syshistory-from-syslog -d [JOURS] -l [LIMITE]

Script pour exécuter toutes les étapes :

  • Utilisez ce script pour re-simuler les étapes de migration ou pour le jour du déploiement en production.
chmod +x migration/run.sh
migration/run.sh

EN

tm_migration Extension

A TYPO3 extension that bundles essential tools to streamline major TYPO3 migrations.

Dependencies

Package Version Compatibility
typo3-fractor v0.5.1 12.4.0 & 13.4.0
typo3-rector 2.14.4 & v3.5.0 12.4.0 & 13.4.0
core-upgrader dev-release/v12 & dev-release/v13 12.4.0 & 13.4.0

Steps

1. Install the extension via composer:

composer require toumoro/tm-migration --dev

2. Update Composer dependencies to the latest versions:

composer require $(composer show -s --format=json | jq '.requires | keys | map(.+" ") | add' -r)
composer require --dev $(composer show -s --format=json | jq '.devRequires | keys | map(.+" ") | add' -r)

3. Configure the extension in config/system/settings.php:

'tm_migration' => [
    'cTypeToListTypeMappingArray' => 'pi_plugin1:new_content_element1',
    'disableTrucateLogUpgradeWizard' => '1',
    'numberOfDays' => '180',
    'upgradeWizards' => [
        'exlcuded' => 'fillTranslationSourceField',
        'fromVersion' => '9.5'
    ],
],

4. Copy the migration folder to the base directory of your project:

chmod +x vendor/toumoro/tm-migration/services/configure.sh
vendor/toumoro/tm-migration/services/configure.sh

5. Export CType and list_type values to JSON or CSV (optional):

  • These CType/ListType export commands prepare for the execution of Upgrade Wizards.
  • Allows you to generate the mapping from ListType to CType in order to specify them in setting.php (tm_migration[cTypeToListTypeMappingArray]).
vendor/bin/typo3 tmexport:types -t [FILE_TYPE] -m [FILE_NAME]

Example for CSV:

vendor/bin/typo3 tmexport:types -t csv -m types.csv

Example for JSON:

vendor/bin/typo3 tmexport:types -t json

6. Fix duplicate MM relations command ( only if needed ) :

  • 6.0. Exécuter la commande de correction des doublons MM :
    vendor/bin/typo3 tmupgrade:fixdatabaseerrors
  • 6.1. Exécuter la commande de update schema :
    vendor/bin/typo3 database:updateschema "*.add,*.change"

7. Run Upgrade Wizards:

vendor/bin/typo3 tmupgrade:run

8. Copy Rector & Fractor configuration files to your project:

cp vendor/toumoro/tm-migration/Resources/Private/Config/Rector/rector_v13.php .
cp vendor/toumoro/tm-migration/Resources/Private/Config/Fractor/fractor_v13.php .

9. Run Rector & Fractor in dry-run mode (simulation):

vendor/bin/rector process --debug --dry-run 2>&1 | tee rector-dryrun.txt
vendor/bin/fractor process --dry-run 2>&1 | tee fractor-dryrun.txt

10. Apply Rector & Fractor corrections:

vendor/bin/rector process
vendor/bin/fractor process

Tip: Using --debug with Rector avoids issues caused by parallel processing.

11. Import SQL files (before and after database schema update):

vendor/bin/typo3 tmupgrade:importsql -f [FILE_NAME]
vendor/bin/typo3 tmupgrade:importsql -d [DIRECTORY]

Example:

vendor/bin/typo3 tmupgrade:importsql -f migration.sql
vendor/bin/typo3 tmupgrade:importsql -d before-updateschema

12. Seperate history entries from sys_log command ( only if migrating a site from TYPO3 version < 9.5 ):

vendor/bin/typo3 tmupgrade:sepearate-syshistory-from-syslog -d [DAYS] -l [LIMIT]

Run All Steps Script:

  • Use this script to re-simulate migration steps or for the day of production deployment.
chmod +x migration/run.sh
migration/run.sh

toumoro/tm-migration 适用场景与选型建议

toumoro/tm-migration 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.2k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 06 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「migration」 「typo3」 「Toumoro」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 toumoro/tm-migration 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 toumoro/tm-migration 我们能提供哪些服务?
定制开发 / 二次开发

基于 toumoro/tm-migration 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2.2k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2025-06-13