Laravel.40 テーブルカラム追加(再)
前回
言語切替を実装したかったが細部が理解できておらず、参考サイトを元に実装できていない。
■テーブルカラム追加
結構前にテーブルの列追加を試したが、マイグレーションファイルに追記しても反映されず、リフレッシュ的なコマンドを実行したら反映はされたがデータがクリアされてしまったことがあった。
この時は、カラム追加用のファイルは削除して元ファイルにカラムを追加した状態でマイグレーションし直したが、今回は別カラムを追加したく、再挑戦。
参考↓
■カラム追加用のマイグレーションファイル作成
threadsテーブルにcategoryカラムを追加したい。
$php artisan make:migration add_category_to_threads_table --table=threads
Created Migration: 2022_05_03_232400_add_category_to_threads_table
ファイルが作成されたのを確認
■マイグレーションファイル編集
ファイルのup関数にカラム情報を記述。
public function up()
{
Schema::table('threads', function (Blueprint $table) {
$table->integer('category');
});
}
■マイグレーション実行
$php artisan migrate
Migrating: 2022_05_03_232400_add_category_to_threads_table
Migrated: 2022_05_03_232400_add_category_to_threads_table (313.86ms)
あれ?何事もなく追加された。
記述の仕方がまずかったのかな?
出来たと喜んでいたら、カラムの属性を間違っていたことに気付く。
■カラムの属性変更
ライブラリを追加する必要があるそう。
$composer require doctrine/dbal
それ用のマイグレーションファイルを作成する。
$php artisan make:migration change_type_to_threads_table --table=threads
編集。
public function up()
{
Schema::table('threads', function (Blueprint $table) {
$table->string('category')->change();
});
}
マイグレーション実行
$php artisan migrate
治った。
他にいくつかほかのテーブルにも項目追加したが問題なし。
続く