Migration數(shù)據(jù)庫遷移工具 Phinx
說明
Phinx 可以讓開發(fā)者簡潔的修改和維護數(shù)據(jù)庫。 它避免了人為的手寫 SQL 語句,它使用強大的 PHP API 去管理數(shù)據(jù)庫遷移。開發(fā)者可以使用版本控制管理他們的數(shù)據(jù)庫遷移。 Phinx 可以方便的進行不同數(shù)據(jù)庫之間數(shù)據(jù)遷移。還可以追蹤到哪些遷移腳本被執(zhí)行,開發(fā)者可以不再擔心數(shù)據(jù)庫的狀態(tài)從而更加關(guān)注如何編寫出更好的系統(tǒng)。
項目地址
https://github.com/cakephp/phinx
安裝
composer require robmorgan/phinx
官方中文文檔地址
詳細使用可以去看官方中文文檔,這里只講怎么在webman中配置使用
https://tsy12321.gitbooks.io/phinx-doc/content/
遷移文件目錄結(jié)構(gòu)
.
├── app 應(yīng)用目錄
│?? ├── controller 控制器目錄
│?? │?? └── Index.php 控制器
│?? ├── model 模型目錄
......
├── database 數(shù)據(jù)庫文件
│?? ├── migrations 遷移文件
│?? │?? └── 20180426073606_create_user_table.php
│?? ├── seeds 測試數(shù)據(jù)
│?? │?? └── UserSeeder.php
......
phinx.php 配置
在項目根目錄創(chuàng)建 phinx.php 文件
<?php
return [
"paths" => [
"migrations" => "database/migrations",
"seeds" => "database/seeds"
],
"environments" => [
"default_migration_table" => "phinxlog",
"default_database" => "dev",
"default_environment" => "dev",
"dev" => [
"adapter" => "DB_CONNECTION",
"host" => "DB_HOST",
"name" => "DB_DATABASE",
"user" => "DB_USERNAME",
"pass" => "DB_PASSWORD",
"port" => "DB_PORT",
"charset" => "utf8"
]
]
];
使用建議
遷移文件一旦代碼合并后不允許再次修改,出現(xiàn)問題必須新建修改或者刪除操作文件進行處理。
數(shù)據(jù)表創(chuàng)建操作文件命名規(guī)則
{time(auto create)}_create_{表名英文小寫}
數(shù)據(jù)表修改操作文件命名規(guī)則
{time(auto create)}_modify_{表名英文小寫+具體修改項英文小寫}
數(shù)據(jù)表刪除操作文件命名規(guī)則
{time(auto create)}_delete_{表名英文小寫+具體修改項英文小寫}
填充數(shù)據(jù)文件命名規(guī)則
{time(auto create)}_fill_{表名英文小寫+具體修改項英文小寫}