DBスキーマの管理 phinx
DBののスキーマ管理をいままでやっていなかったため、複数人での開発になりDBへの変更がよくわからない状態になってしまったので、本格的にマイグレーションをいれてみました。
Phinx
Introduction — Phinx 0.9.2 documentation
コードでDBへのスキーマ反映やデータ追加などが可能です。ロールバックをすることで、追加したカラムを削除したりもできます。
ようやく手を出してみましたが、やってよかったです。
簡単でしたし、なんとか運用も回っているみたいです。
使う手順
マニュアルに書いてある通りで動いたので、いいマニュアルですね。
curl -sS https://getcomposer.org/installer | php
php composer.phar require robmorgan/phinx
php composer.phar install
vendor/bin/phinx
テンプレートを作成します。
vendor/bin/phinx create {処理名}
upとdown関数の内容を書き、migrateすると反映されます。
どういう管理がされるか
適用するdatabaseに管理用のテーブルが追加されます。
デフォルトであれば、phinxlogテーブルです。
反映した後にデータをみればわかりますが、処理日時とどの処理のファイルを反映したかが保存されています。
複数人で作成した場合の懸念
テンプレートを先に作ったけど、リリースは後になるケースはどうなる?と思い、テストしてみましたが作られるファイルに記載される日付自体の影響はなく、管理テーブルにまだなければ処理をしてくれます。
安心して複数人で使用できます。
環境ごとの設定
phinx.ymlに記載
paths: migrations: '%%PHINX_CONFIG_DIR%%/db/migrations' seeds: '%%PHINX_CONFIG_DIR%%/db/seeds' environments: default_migration_table: phinxlog default_database: development production: adapter: pgsql host: 192.168.33.10 name: myproject user: user pass: 'password' port: 5432 charset: utf8 development: adapter: pgsql host: localhost name: myproject user: user pass: 'password' port: 5432 charset: utf8 version_order: creation
環境別の対処 ymlファイルの設定を反映
vendor/bin/phinx migrate -e production
vendor/bin/phinx migrate -e development
実は自身では運用でそこまで使っていない
最近コードをちゃんと書いていないため、仕組みだけ用意してあとは任せた!!状態で運用を動かしてみましたが、いろいろ改善しながらうまくやってくれているようです。
なかなかこういう状況を味わったことがなかったので、自分が作ってきたシステムの運用を別の人が担当し動いているのは面白いです。不安もありますが、任せたのであまり関わらずにいこうかと思います。
とにかく仕組みを整えてあげることが今の使命かな。
本当に色々と見る必要がありますね。知識不足がきついです。