appzap / migrator
一个用于 SQL 迁移的 TYPO3 扩展
This package is auto-updated.
Last update: 2024-08-29 03:41:54 UTC
README
一个用于 SQL 迁移的 TYPO3 扩展
如今,TYPO3 项目大多是使用 git 开发和部署的。此扩展可以帮助您在这个环境中处理 SQL 变更。在所有开发实例上应用 SQL 变更,甚至将变更部署到您的实时系统。
它做什么
迁移器会执行您放置在特定目录中的编号 SQL 文件(例如 001.sql
、002.sql
等)。一旦调用迁移器,它会检查新的 .sql 文件并按正确顺序执行它们。
因此,如果您想在您的安装中分发 SQL 命令(例如,新记录的 INSERT 语句),只需创建一个比现有文件编号更高的文件并将其推送到您的存储库。其他人拉取并执行迁移器后,他们将应用您的更改!
设置
- 确保存在后端用户
_cli_lowlevel
。它不需要任何权限。 - 创建一个文件夹,您想在其中放置 SQL 文件。如果它在您的网站根目录中,请使用以下内容的 .htaccess 文件保护它:
deny from all
。 - 使用扩展管理器安装此扩展。
- 在扩展管理器中进行配置。
- SQL 文件文件夹的路径:相对路径到您刚刚创建的文件夹。
- mysql 二进制文件路径:根据您的机器上的 mysql 二进制文件进行调整。
调用
迁移器可以通过两种方式调用
命令行
$php cli_dispatch.phpsh extbase migration:migratesqlfiles
调度任务
创建一个类为“Extbase Command Controller Task”的调度任务,并将“Migrator Migration: migrateSqlFiles”作为命令。您可以通过 cronjob 定期调用任务,或者在需要时手动调用。
故障排除
如果 SQL 文件的执行失败,则最后执行的文件的计数器不会增加,该文件将在下一次运行时再次执行。请注意,它可能在崩溃之前已经对您的数据库进行了更改。
如果您想查看/更改最后执行的 SQL 文件的内部指针,您可以在 sys_registry
表中找到它,其命名空间和键为 AppZap\Migrator
/ lastExecutedVersion
。
我可以省略迁移编号吗?
是的,在 003.sql
之后,下一个文件可以是 005.sql
。请注意,一旦 005.sql
执行,然后添加 004.sql
,则 004.sql
将永远不会执行。
我可以使用时间戳作为迁移编号吗?
是的。
我可以从 0 开始吗?
不,目前第一个文件必须是 001.sql
或更高。
我需要前导零吗?
不,您也可以使用 1.sql
等。
我可以撤销迁移吗?
不,迁移器只知道一个方向。您需要手动进行。