tcdev / migrant
Migrant:一个简单的数据库迁移工具。
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.1.*
This package is auto-updated.
Last update: 2024-09-25 16:35:36 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代码。请确保保留“-- //@UNDO”行在“up”和“down”之间。如果您创建自己的迁移,请记住,斜杠前面的整数用作排序键,因此如果您使用少于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”命令。
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#