Laravelでデータ型を後から変更したいときの手順を解説します。
最初に変更できるデータ型についてですが、下記のみとなります。
bigInteger、binary、boolean、date、dateTime、dateTimeTz、decimal、integer、json、longText、mediumText、smallInteger、string、text、time、unsignedBigInteger、unsignedInteger、unsignedSmallInteger、uuid
*公式マニュアル参照:https://readouble.com/laravel/8.x/ja/migrations.html
Laravelでデータ型を後から変える方法
それでは手順を解説します。
今回は、articlesテーブルの中の【body】カラムのデータ型を string→longTextに変更することにします。
①マイグレーションファイルの作成
次のルールに沿ってコマンドを入力します。
1 |
php artisan make:migration ファイル名 --table=テーブル名 |
ファイル名は、マイグレーションファイルの名前になります。
お好きなように変更してください。
今回は、下記のようにコマンドを入力します。
1 |
php artisan make:migration data_type_to_article_body --table=articles |
②マイグレーションファイルの編集
databaseフォルダの中のマイグレーションファイルを開きます。
upの部分に、次のようにlongTextのデータ型を入力。
最後に【->change()】を加えることで、「変更するよ」という意味になります。
1 |
$table->longText('body')->change(); |
downの部分には、ロールバック(マイグレーションのやり直し)を行ったときに、変更前の状態に戻すための処理をいれます。
今回は、元々のデータ型をいれておきます。
ここでも 【->change()】を加えます。
1 |
$table->text('body')->change(); |
ファイルを保存します。
③マイグレーションの実行
マイグレーションを実行します。
1 |
php artisan migrate |
【Class “Doctrine\DBAL\Driver\AbstractMySQLDriver” not found】と出た場合は、下記を実行します。
1 |
composer require doctrine/dbal |
Junko
エラーについて詳しく知りたい場合には、下記の記事みてくださいね。
phpMyAdminにログインすると、【body】カラムのデータ型が変更されています。
【変更前】
【変更後】
データ型以外にも、色々と変えたい事出てくるかもしれません。
カラムの追加・削除・カラム名の変更は、下記記事を参考にしてください。