もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

laravelのエラーClass "Doctrine\DBAL\Driver\AbstractMySQLDriver" not foundがでた

はじめに

こんばんは。

laravelのマイグレーションでカラム変更しようとした際にエラーが出たので、備忘録しておきます。

本題

1

今回試した際に発生したエラーは以下です。

Class "Doctrine\DBAL\Driver\AbstractMySQLDriver" not found

こちらを解決するには、以下のパッケージが必要です。

github.com

下記コマンドでインストールすれば問題なくマイグレーションを実行できます。

$ composer require doctrine/dbal

2

別のマイグレーション実行時に出たエラーでありました。

TINYINTの方を変更しようとした際にエラーが起きました。

調べてみると、tinyintは変更できないみたいです。

readouble.com

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ばっかりやってますが、別のこともやりたいな。

おわり。