はじめに
こんばんは。
laravelのマイグレーションでカラム変更しようとした際にエラーが出たので、備忘録しておきます。
本題
1
今回試した際に発生したエラーは以下です。
Class "Doctrine\DBAL\Driver\AbstractMySQLDriver" not found
こちらを解決するには、以下のパッケージが必要です。
下記コマンドでインストールすれば問題なくマイグレーションを実行できます。
$ composer require doctrine/dbal
2
別のマイグレーション実行時に出たエラーでありました。
TINYINTの方を変更しようとした際にエラーが起きました。
調べてみると、tinyintは変更できないみたいです。
Note: 以降のカラムタイプを変更できます。bigInteger、binary、boolean、date、dateTime、dateTimeTz、decimal、integer、json、longText、mediumText、smallInteger、string、text、time、unsignedBigInteger、unsignedInteger、unsignedSmallInteger、uuid。timestampのカラムタイプを変更するには、Doctrineタイプを登録する必要があります。
対処法は ALTER TABLEを直接実行する方法がベターのようです。
DB::statement('ALTER TABLE xxxx CHANGE COLUMN `xxxx` `xxxx` BIGINT UNSIGNED');
調べると結構出てきますが、 laravel8になっても発生していました。
終わりに
かんたんだけど備忘録として残しておきます。
最近laravelばっかりやってますが、別のこともやりたいな。
おわり。