petrknap / php-migrationtool
PHP迁移工具
Requires
- php: >=5.6
- doctrine/dbal: ^2.5
- psr/log: ^1.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-10 17:10:17 UTC
README
什么是迁移?
数据迁移 是在存储类型、格式或计算机系统之间传输数据的过程。它是任何系统实施、升级或整合的关键考虑因素。数据迁移通常通过程序化执行以实现自动化迁移,从而释放人力资源,使其从繁琐的任务中解脱出来。数据迁移有多种原因,包括服务器或存储设备更换、维护或升级、应用迁移、网站整合和数据中心迁移。
php-migrationtool的使用方法
迁移文件
迁移文件放置在特殊目录(如 /migrations
)中。迁移文件名包含三个部分:迁移ID、空格分隔的描述(可选)和点号分隔的扩展名(可选)——有效迁移文件名可以是 {id}
、{id}.{extension}
、{id} {description}
和 {id} {description}.{extension}
。
user@localhost:~/project/migrations$ ls
M0001 M0002.ext M0003 - Third migration M0004 - Fourth migration.ext
迁移工具按目录中文件名的顺序(升序)处理 所有文件。如果应用任何迁移文件时抛出异常,则此文件引起的更改将被取消,迁移工具将停止。
迁移工具还包含已应用迁移的列表,并保证每个文件只会被处理一次,并且仅在不存在ID更高的已应用迁移时才会处理。
迁移工具
所有迁移工具都实现了带有 migrate()
方法的 MigrationToolInterface
。
<?php /** * @var $tool PetrKnap\Php\MigrationTool\MigrationToolInterface */ $tool->migrate();
SQL迁移工具
警告: SQL迁移工具仅处理扩展名为 sql
的文件。
<?php /** @var \Doctrine\DBAL\Connection $connection */ $tool = new PetrKnap\Php\MigrationTool\SqlMigrationTool( __DIR__ . '/migrations', $connection ); /** @var \Psr\Log\LoggerInterface $logger */ $tool->setLogger($logger); $tool->migrate();
SQL迁移工具 支持原生SQL文件 作为迁移文件。您可以简单地将 orm:schema-tool:update --dump-sql、phpMyAdmin、Adminer 或任何具有SQL输出的工具的输出复制粘贴到迁移文件中。
如何安装
运行 composer require petrknap/php-migrationtool
或手动将此JSON代码与您的项目 composer.json
文件合并,然后运行 composer install
。您可以使用 已发布版本之一 而不是 dev-master
。
{ "require": { "petrknap/php-migrationtool": "dev-master" } }
或者,您可以手动通过 git clone https://github.com/petrknap/php-migrationtool.git
克隆此存储库或下载 此存储库的ZIP文件 并将其文件提取到您的项目中。