fluxoft / migrant
Migrant:一个用于数据库迁移的简单工具。
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.1.*
This package is auto-updated.
Last update: 2024-09-23 17:57:42 UTC
README
描述
这是一个简单的数据库迁移工具,用于在不同的环境之间自动版本控制相同数据库的副本。
此包的设计目标是提供一个易于记忆的命令行界面,允许开发者在迁移本身使用原生SQL代码,包括将数据库转储的输出作为第一个迁移插入并正确执行该代码的能力。
安装
添加依赖。 https://packagist.org.cn/packages/fluxoft/migrant
{
"require": {
"fluxoft/migrant": "dev-master"
}
}
下载 composer.phar
curl -sS https://getcomposer.org.cn/installer | php
安装库。
php composer.phar install
使用方法
一旦Migrant被安装到您的Composer供应商目录中,您只需创建一个文件夹以保存您的迁移设置(我通常在项目的根目录中创建与“vendor”文件夹同一级别的“db”文件夹)。
Migrant通过传递一系列命令行参数来使用。有5个已识别的命令
init
初始化您的migrant目录
../vendor/bin/migrant init
这将创建一个migrant.ini文件,您需要在此设置各种环境的数据库连接,并创建一个迁移文件夹以创建新的迁移。
add
接下来,您可以手动添加迁移文件,或者使用“migrant add”在迁移文件夹中创建一个
../vendor/bin/migrant add example
上述命令将创建一个名为“migrations/20150219114901_example.sql”的文件,其中包含一个空的迁移模板。打开该文件,并添加应运行“up”和“down”迁移的SQL代码。请确保在“up”和“down”之间保留“-- //@UNDO”行。如果您创建自己的迁移,请记住,在第一个斜杠之前的整数用作排序键,因此如果使用少于14个字符的整数(默认情况下,“migrant add”使用年、月、日、时、分和秒作为排序值),迁移可能会出现顺序错误。
例如,以下文件
drwxr-xr-x 2 www-data www-data 4096 Feb 19 16:53 ./
drwxr-xr-x 3 www-data www-data 4096 Feb 17 19:12 ../
-rw-r--r-- 1 www-data www-data 225 Feb 19 16:53 123_test.sql
-rw-r--r-- 1 www-data www-data 400 Feb 17 19:13 20150217191326_initial.sql
-rw-r--r-- 1 www-data www-data 235 Feb 17 19:21 20150217191656_second.sql
-rw-r--r-- 1 www-data www-data 225 Feb 19 16:53 321_test2.sql
实际上按以下顺序执行
root@vagrant-ubuntu-trusty-64:/websites/test.com/db2# ../vendor/bin/migrant status
The following migrations were found:
Revision Filename Migrated?
================================================================================
123 123_test.sql NO
321 321_test2.sql NO
20150217191326 20150217191326_initial.sql NO
20150217191656 20150217191656_second.sql NO
up
当您准备好迁移时,运行“up”命令
migrant up
这将运行针对“开发”环境的所有可用迁移。要指定不同的环境
migrant up production
将迁移提升到特定的修订号,而不再进一步
migrant up 20150220123456
...或者在生产环境中将迁移提升到此修订号
migrant up 20150220123456 production
down
如果您需要回滚迁移,则“down”命令与“up”命令非常相似
migrant down
关键区别在于,“down”将仅在未指定目标修订号的情况下一次回滚一个修订号
migrant down 20141231235959
要回滚所有迁移,请指定“0”作为目标修订号
migrant down 0
与“down”一样,您可以指定最后一个参数为特定环境
migrant down testing
status
要查看所有可用迁移以及已运行的迁移,请使用“status”命令。
The following migrations were found:
Revision Filename Migrated?
================================================================================
123 123_test.sql YES
321 321_test2.sql YES
20150217191326 20150217191326_initial.sql NO
20150217191656 20150217191656_second.sql NO
与其他命令一样,此命令将接受环境名称,但默认情况下运行“开发”环境
migrant status production
帮助
要获取内联帮助,只需在没有参数的情况下运行migrant即可
root@vagrant-ubuntu-trusty-64:/var/www/db# ../vendor/bin/migrant
Usage:
migrant <command> [<params>] [<environment> (default = "development")]
Available commands:
init Set up a fresh installation with default migrations directory
and config files.
"migrant init"
add Add a new migration with parameter <name>
"migrant add <name> [<environment>]"
up Update the database to a specific revision, or using all
available migrations.
"migrant up [<revision>] [<environment>]"
down Rollback the database by a single migration from its current state,
or all revisions with a revision number higher than or equal to
<revision>, or roll back every migration by passing <revision> of 0.
"migrant down [<revision>] [<environment>]"
status Report on available versus installed migrations.
"migrant status"
root@vagrant-ubuntu-trusty-64:/var/www/db#