魔法使いの卵

WEBエンジニアの卵の成長記録

Laravel5.1のmigrationを使ってカラムの変更でハマった話

経緯

  • 実行したクエリもちゃんとバージョン管理下に置いておきたくてmigrationを使う運用をしている
  • カラムの情報を変更させる必要があったのでmigrationファイルを作ってカラムを変更しようとしたらできなかった

なにをやってたのか

  • migrationファイルを作った
php artisan make:migration --table 該当テーブル名 migrationファイル名
Schema::table('xxx', function (Blueprint $table) {
    $table->string('name', 50)->change();
});
  • migration実行
php artisan migration
  • データベースを確認しても変化なしのため一旦ロールバックして再度、実行しながらクエリログをみる

  • xxx テーブルに対してのログが一切でてこないのにmigrationテーブルは更新されてる

  • カラムの情報を変更できていないのにmigrationファイルは実行済みになっていた

  • Documentを探した

なぜカラムの変更ができなかったのか

  • パッケージをいれてなかった
  • 以下を入れろってDocumentに書いてました
composer require doctrine/dbal
composer install

結論

  • 作ったファイル消してパッケージ入れてファイル作り直したら動きました