Migration数据库迁移工具 Phinx

说明

Phinx 可以让开发者简洁的修改和维护数据库。 它避免了人为的手写 SQL 语句,它使用强大的 PHP API 去管理数据库迁移。开发者可以使用版本控制管理他们的数据库迁移。 Phinx 可以方便的进行不同数据库之间数据迁移。还可以追踪到哪些迁移脚本被执行,开发者可以不再担心数据库的状态从而更加关注如何编写出更好的系统。

项目地址

https://github.com/cakephp/phinx

安装

  1. composer require robmorgan/phinx

官方中文文档地址

详细使用可以去看官方中文文档,这里只讲怎么在webman中配置使用

https://tsy12321.gitbooks.io/phinx-doc/content/

迁移文件目录结构

  1. .
  2. ├── app 应用目录
  3. ├── controller 控制器目录
  4. └── Index.php 控制器
  5. ├── model 模型目录
  6. ......
  7. ├── database 数据库文件
  8. ├── migrations 迁移文件
  9. └── 20180426073606_create_user_table.php
  10. ├── seeds 测试数据
  11. └── UserSeeder.php
  12. ......

phinx.php 配置

在项目根目录创建 phinx.php 文件

  1. <?php
  2. return [
  3. "paths" => [
  4. "migrations" => "database/migrations",
  5. "seeds" => "database/seeds"
  6. ],
  7. "environments" => [
  8. "default_migration_table" => "phinxlog",
  9. "default_database" => "dev",
  10. "default_environment" => "dev",
  11. "dev" => [
  12. "adapter" => "DB_CONNECTION",
  13. "host" => "DB_HOST",
  14. "name" => "DB_DATABASE",
  15. "user" => "DB_USERNAME",
  16. "pass" => "DB_PASSWORD",
  17. "port" => "DB_PORT",
  18. "charset" => "utf8"
  19. ]
  20. ]
  21. ];

使用建议

迁移文件一旦代码合并后不允许再次修改,出现问题必须新建修改或者删除操作文件进行处理。

数据表创建操作文件命名规则

{time(auto create)}_create_{表名英文小写}

数据表修改操作文件命名规则

{time(auto create)}_modify_{表名英文小写+具体修改项英文小写}

数据表删除操作文件命名规则

{time(auto create)}_delete_{表名英文小写+具体修改项英文小写}

填充数据文件命名规则

{time(auto create)}_fill_{表名英文小写+具体修改项英文小写}