itx / doctrine-migrations
TYPO3 扩展,用于版本化迁移文件,集成 doctrine/migrations
1.0.1
2024-09-27 12:18 UTC
Requires
- php: >=8.1
- doctrine/migrations: ^3.8
- typo3/cms-core: ^12.4
README
此扩展提供了一个 CLI,用于在 TYPO3 中管理数据库迁移的 doctrine 迁移。迁移由版本化文件定义,可以通过 CLI 创建和执行。
安装(Composer)
- 通过执行
composer req itx/doctrine-migrations:<version>添加扩展 - 在您的扩展文件夹中创建一个文件夹,例如
Classes/Migrations - 在 TYPO3 后端中,在
设置 > 扩展配置 > doctrine_migrations中添加您想要保存版本文件的路径和相应的命名空间 - 或者您可以在 additional.php 文件中配置这些路径,例如。
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['doctrine_migrations']['migrationFilesLocation'] = 'EXT:your_extension/Migrations'; $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['doctrine_migrations']['migrationsFilesNamespace'] = 'YourExtension\Migrations';
您可以选择在 additional.php 文件中提供一个数组来覆盖默认的 doctrine 迁移配置,例如:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['doctrine_migrations']['overrideConfiguration'] = [ 'table_storage' => [ 'table_name' => 'different_table_name_xyz', ], ];
使用方法
- 该扩展通过 CLI 控制
- 您可以使用命令
vendor/bin/typo3 migrations:<command> <option>
教程
创建版本文件
- 要生成所选位置的版本文件,请使用
vendor/bin/typo3 migrations:generate - 创建的文件名为 Version{date},{date} 为其创建时间,格式为
YmdHis - 该文件包含三个预生成的空函数:
getDescription()、up()和down() - 将您需要的 SQL 代码放入
up()函数中,并将可以回滚迁移的代码放入down()函数中,如下所示:$this->addSql('<your sql goes here>'); - 注意在
addSql()函数中转义任何单引号
处理版本文件
vendor/bin/typo3 migrations:status显示迁移的当前状态:当前使用哪个版本,哪个是上一个/下一个/最新版本等。- 一旦您准备了一个包含对数据库进行所需更改的迁移文件,您可以通过以下方式执行它:
vendor/bin/typo3 migrations:migrate自动运行从当前状态到最新版本的所有版本文件- 或者
vendor/bin/typo3 migrations:execute "Path\To\Your\File" --up仅运行所选版本文件的up()方法
- 在上面的命令中使用
--down而不是--up将执行版本文件的down()函数 - 有关这些以及其他一些命令及其选项的更多信息,请参阅 此
更多信息
- 有关 doctrine 迁移的更多信息,请参阅 官方 doctrine 文档