はじめに
Laravelを使ってアプリを作る際にテーブルのカラム変更が発生した場合のマイグレーションの備忘録として記録します。
(例)User Tableのカラムを変更したい場合
(注意)
テーブルの更新をする場合は、あらかじめデータのバックアップを取得しておいてください。
ユーザーテーブルを例に説明します。
(更新前)
ユーザー名 | メールアドレス | パスワード | 作成日 | 更新日 |
---|---|---|---|---|
Qiitaたろう | taro@qiita.com | qiitAbc | 2024-01-01 | 2024-02-01 |
(更新後)
ユーザー名 | メールアドレス | パスワード | 作成日 | 更新日 | 権限 |
---|---|---|---|---|---|
Qiitaたろう | taro@qiita.com | qiitAbc | 2024-01-01 | 2024-02-01 | true |
権限の列を増やしたい場合、Migrationしてモデルを更新する必要があります。
なので、マイグレーションファイルを作成します。
php artisan make:migration マイグレーションファイル名
php artisan migrateとするとエラーが...
マイグレーションファイルを作成して、テーブルを更新するため下記のLaravelコマンドを実行。
php artisan migrate
すると、こんなエラーが出た....↓
Base table or view already exists ~
ボクの場合、ユーザーテーブル以外にすでに別のテーブルも作っていたため、マイグレーションエラーが出ていました。
なので、いったんLaravelのマイグレーションフォルダから、エラーを吐いているファイルを一時退避用のフォルダに入れることで解決できました。
こんな感じで、退避用フォルダ「maigration_backup」を作って既存のマイグレーションファイルを一時的に移動させておくと、エラーは発生せずにテーブル更新することができました。
もっとスマートなやり方があるんだと思いますが...
どうしてもうまくいかない!といった時の力技でした...💦