portrino / px_dbmigrator
TYPO3 数据库迁移工具
Requires
- typo3/cms-core: ^10.4 || ^11.5 || ^12.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.28
- friendsofphp/php-cs-fixer: ^3.14
- helmich/typo3-typoscript-lint: ^3.1
- php-coveralls/php-coveralls: ^2.5
- phpstan/phpstan: ^1.10
- seld/jsonlint: ^1.9
- typo3/coding-standards: ^0.6
Suggests
This package is auto-updated.
Last update: 2024-09-17 15:42:31 UTC
README
TYPO3 数据库迁移工具
1 功能
今天,TYPO3 项目大多数是通过 git 开发和部署的。PxDbmigrator 扩展可以帮助您在这个环境中处理 SQL 变更。在所有开发实例上应用 SQL 变更,甚至可以将变更部署到您的生产或测试环境中。
1.1 它能做什么
PxDbmigrator 扩展提供了一个命令,用于执行您放置在可配置目录中的迁移文件(例如 *.sql 文件或 *.sh 或 *.typo3cms 文件)。一旦调用该命令,它会检查新的迁移文件,并按给定顺序“执行”它们。
因此,如果您想在您的安装中分发一个 SQL 命令(例如,为新的记录创建一个 INSERT/REPLACE 语句),只需创建一个具有唯一名称的文件并将其推送到您的仓库。一旦其他人拉取并执行 PxDbmigrator 命令,他们就会应用您的更改!
建议使用 composer 的 pre-或 post-脚本来自动化命令的执行。
2 使用方法
2.1 安装
使用 Composer 安装
推荐使用 composer 安装此扩展。
在您的基于 Composer 的 TYPO3 项目中运行以下命令
composer require portrino/px_dbmigrator
从 TYPO3 扩展存储库 (TER) 安装扩展
使用扩展管理模块下载并安装 扩展。
2.2 设置
完成安装后,转到扩展设置并调整给定的设置以符合您的需求。
因此,在 composer 管理的 TYPO3 安装的 LocalConfiguration.php
中的一个可能的配置可能如下所示
return [
...
'EXTENSIONS' => [
...
'px_dbmigrator' => [
'migrationFolderPath' => '../migrations',
'mysqlBinaryPath' => '/usr/bin/mysql',
'typo3cmsBinaryPath' => '/vendor/bin/typo3',
],
...
],
...
];
2.3 调用
使用 TYPO3 CLI 调用命令以执行迁移
./vendor/bin/typo3 migration:migrateall
3 故障排除
如果迁移文件的执行失败,最后执行的文件的关联注册条目不会存储在数据库中,该文件将在下一次运行时再次执行。请注意,它可能已经在崩溃之前对您的数据库进行了更改!
如果您想查看最后执行的迁移,可以检查具有命名空间 PxDbmigrator
的数据库表 sys_registry
。
4 常见问题解答
我可以用时间戳作为迁移数字/文件名前缀吗?
当然可以。这确实是推荐的做法,因为文件名已经包含了创建日期,并且文件按名称正确排序。
我需要前导零吗?
不需要,您也可以使用 1.sql
等。但如上所述,推荐的方式是使用时间戳。例如:1696560849-adds-some-required-pages.sql
我可以撤销迁移吗?
不,迁移器只知道一个方向。您需要手动操作。
5 作者
- 查看参与此项目的 贡献者 列表。