phpのフレームワークには大体マイグレーション機能がついている。
業務でアプリケーション開発を行う時は各開発者のローカルの開発環境、サーバー上の開発環境、ステージング環境、本番環境などと分かれていたりするため、
そういった場合はマイグレーションを使用すると本当に楽。
なので使うのは使うのだが、正直あまり好きではない。
rollbackして再度migrateしたら一度データは消えてしまうし、
本当はRidgepoleのように完成形だけ保存して勝手にその形に合わせて欲しいというのが本音。
ただ、必ずしもそうできるというわけではないので、それでも使うのであればなるべく楽したい、
ということでCakePHP3のマイグレーションの便利さをLaravel5と比較してみる。
Laravelのマイグレーションは必要なものは揃っていて、基本という感じ。
seedもあるのでデータの初期化もできる。
php artisan make:migration add_votes_to_users_table --table=users
php artisan make:migration create_users_table --create=users
$table->string('name')->nullabel()->after('id');
php artisan migrate
特に迷うこともなく簡単。
その他にもいくつか機能はある。
基本的なところは大して変わらない。
だが、いくつか便利なものがある。
なんと、最後のマイグレーションと現在の構成を比較し、
勝手にマイグレーションファイルを作成してくれる。
phpMyAdminで適当にカラム追加したり調整したりして
最後に実行すればいいだけ。すごく楽。
bin/cake bake migration_diff AddFlagToTable
afterだけ自動ではないので自分であとで付ける。
これも間違いがあった場合はrollbackで戻せる。
またこの機能のため、現在の構成をダンプデータとして保存しておいたり、
マイグレーション済みとしてマーキングしたりすることも可能なので
適宜その時の状態に応じて調整できる。
マイグレーション無しで進めてしまったアプリケーションも後付でマイグレーション方式に変更できる。
コード書く量を減らして早く仕事を終わらせよう。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント