Laravelで【Class “Doctrine\DBAL\Driver\AbstractMySQLDriver” not found】や【Doctrine DBAL Driver PDOMySql Driver not found】や【○○ requires Doctrine DBAL.】のエラーが出てマイグレートできないときの対処法です。
私はカラム名の変更を行うためにマイグレーションファイルを変更し、マイグレートを行おうとしたときに、このエラーが出ました。
対策は、下記を実行します。
1 |
composer require doctrine/dbal |
コマンド実行後、再びコマンドを入力できるようになったら、マイグレートを実行してみましょう。
なぜDoctrine DBAL Driverエラーがでるのか?
このエラーは、必要なドライバーが入っていないから処理が進められない、というものなようです。
なのでコンポーザーに必要なものをインストールしてくれるようにコマンドを送り、解決しました。
ただコンポーザーって最初にインストールしたはずですよね。その時に色々インストールされているはずなのに。なぜこんなエラーがおこるのか、不思議に思いませんか?
このあたり、説明していきますね。気になったら読んでください。
実は、コンポーザーをインストールしただでは、全ての機能を使えるようにはなりません。コンポーザーのインストールは、いってみれば、図書館の利用カードみたいなもの。必要に応じて図書館にいって、本を借りてくる必要があります。
今回私が行おうとしたのは、カラム名の変更(renameColumn)という、それほど出番が多くなさそうな命令でした。
これはLaravel本体には組み込まれておらず、デフォルトではLaravelでは使えない機能。
そこでコンポーザーにお願いして、機能を追加してあげる必要があったのです。イメージ的には、こんな感じですかね。
まとめ
インストールしただけじゃ使えない機能は、(たまに)あるかもしれません。
必要に応じてコンポーザー図書館にいって、必要なものを追加で入れていきましょう♪