ank/migrations

database migrations

2.0.2 2021-01-31 12:58 UTC

README

项目配置

在项目的公共配置文件中添加迁移配置,不要添加到业务访问模块

'migrations'  => [
    'name'       => 'Stat Db Migrations',
    'name_space' => 'migration',
    'table_name' => 'migration',
    'paths'      => [dirname(dirname(__DIR__)) . '/migration'],
],
  • name 为项目的名字,可自定义
  • name_space 为迁移类的命名空间,尽量保持默认,跟框架的命名空间规则一至
  • table_name 迁移类在数据库生成的迁移记录表名字,不带前缀
  • paths 数组,迁移类所在路径(绝对路径),一般路径跟 controller 目录同级(跟框架目录规则一至) 以上配置可以在多个项目中设置,迁移命令执行的时候会自动合并,但顺序不确定,所以建议除啦 paths 外其它配置项只配置一次

生成迁移脚本

./vendor/bin/ank-db generate

执行迁移到最新版本

./vendor/bin/ank-db migrate

--dry-run是空转参数,只显示操作结果,不执行修改

./vendor/bin/ank-db migrate --dry-run

不执行操作,只写入文件,对于生产环境需要手动验证并执行的场景有用

./vendor/bin/ank-db migrate --write-sql=file.sql

查看详细信息

./vendor/bin/ank-db status

迁移到指定版本

./vendor/bin/ank-db migrate 20180608161758

使用别名迁移到指定版本

  • first:回退到初始版本
  • prev:回到上一个版本
  • next:迁移到下一个版本
  • latest:迁移到最新版本(和不加版本号效果一样)

单独迁移指定版本的脚本

./vendor/bin/ank-db execute 20180601193057 --down/--up

其它参数

  • --no-interaction 不用确定,直接执行
  • --write-sql=migration.sql 使用此参数后,所有操作不在数据库中执行,而是将操作的sql写到指定文件中