(docker)(Laravel)マイグレーション時、could not find driver のエラー

docker-laravel-migration-could-not-find-driver

 

dockerで構築したlaravel環境で、マイグレーションエラーしたら下記のようなエラー

could not find driver

 

 

原因:MySQLのドライバが存在しないから

 

これは、PDO(PHP Data Object)がDBを操作するために必要な、
ドライバと言うものがないために出ているエラー。

使用中のphpイメージでは、デフォルトでsqlite用ドライバしかないらしい。

 

下記コマンドで現在のモジュール一覧を調べることができる(phpコンテナ内で打つこと)。

php -m

 

phpinfo()でも確認できる。

phpinfo-pdo

 

解決策:MySQLのドライバ(pdo_mysql)をインストールする

 

下記手順で、mysqlのドライバ(pdo_mysql)をインストールする。

 

①Dockerfileを修正する

Dockerfileを下記のように修正する。

FROM php:7.3-apache

# pdo_mysql(mysqlのドライバ)をインストールする
RUN docker-php-ext-install pdo_mysql

 

②Dockerfileを使ってphpイメージをビルドする

下記コマンドをDockerfileが存在する階層で実行し、phpイメージをビルドする。

docker build -t php:7.3-apache .

 

※「docker build -t イメージ名:タグ名 . する時は、
タグ名をdocker-composeで書いてあるタグ名に指定するよう気をつけよう

 

イメージがビルドできたら、コンテナを再起動。
んでもう一回コンテナ内でphp -mを打つと、

 

できてる。

と言うことで、改めてphp artisan migrateすると、マイグレーションが成功するはず。

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。