Migrationデータベース移行ツール Phinx
説明
Phinxは、開発者がデータベースを簡潔に修正および維持することを可能にします。 人為的な手書きのSQL文を避け、強力なPHP APIを使用してデータベースの移行を管理します。 開発者はバージョン管理を使用して、データベースの移行を管理できます。 Phinxは、異なるデータベース間でのデータ移行を簡単に行うことができます。また、どの移行スクリプトが実行されたかを追跡できるため、開発者はデータベースの状態を心配することなく、より良いシステムを作成することに集中できます。
プロジェクトアドレス
https://github.com/cakephp/phinx
インストール
composer require robmorgan/phinx
公式日本語文書アドレス
詳細な使用方法については、公式日本語文書をご覧ください。ここでは、webmanでの設定方法についてのみ説明します。
https://tsy12321.gitbooks.io/phinx-doc/content/
移行ファイルのディレクトリ構造
.
├── app アプリケーションディレクトリ
│ ├── controller コントローラディレクトリ
│ │ └── Index.php コントローラ
│ ├── model モデルディレクトリ
......
├── database データベースファイル
│ ├── migrations 移行ファイル
│ │ └── 20180426073606_create_user_table.php
│ ├── seeds テストデータ
│ │ └── UserSeeder.php
......
phinx.php 設定
プロジェクトルートディレクトリに 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"
]
]
];
使用の推奨
移行ファイルは、一度コードがマージされた後は再度変更することを許可しません。問題が発生した場合は、新たに変更または削除操作ファイルを作成して対応する必要があります。
データテーブル作成操作ファイルの命名ルール
{time(auto create)}_create_{テーブル名英小文字}
データテーブル修正操作ファイルの命名ルール
{time(auto create)}_modify_{テーブル名英小文字+具体的修正項目英小文字}
データテーブル削除操作ファイルの命名ルール
{time(auto create)}_delete_{テーブル名英小文字+具体的修正項目英小文字}
データ補填ファイルの命名ルール
{time(auto create)}_fill_{テーブル名英小文字+具体的修正項目英小文字}