質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

artisan

artisanは、PHP Laravelフレームワークのコマンドの事です。 Artisanコマンドを使う事で、DBのテーブルやバンドル等を追加することができるコマンドです。

Q&A

解決済

1回答

2216閲覧

migrateに失敗。could not find driverのエラーを解決したい

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

artisan

artisanは、PHP Laravelフレームワークのコマンドの事です。 Artisanコマンドを使う事で、DBのテーブルやバンドル等を追加することができるコマンドです。

0グッド

0クリップ

投稿2021/05/15 16:00

編集2021/05/15 16:15

前提・実現したいこと

php artisan migrateを実行すると、could not find driverのエラーが出てマイグレーションできないので、エラーを解決してマイグレーション成功すること。

##開発環境
Mac
PHP 7.3.24
Homebrew 3.1.7
postgreSQL 13
ローカル環境

発生している問題・エラーメッセージ

php artisan migrateを実行すると以下のエラーが発生。

Illuminate\Database\QueryException could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations and table_type = 'BASE TABLE') at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678 674▕ // If an exception occurs when attempting to run a query, we'll format the error 675▕ // message to include the bindings with SQL, which will make this exception a 676▕ // lot more helpful to the developer instead of just the database's errors. 677▕ catch (Exception $e) { ➜ 678▕ throw new QueryException( 679▕ $query, $this->prepareBindings($bindings), $e 680▕ ); 681▕ } 682▕ +33 vendor frames 34 artisan:37

試したこと

sudo yum install php-pdo_pgsql

でドライバーをインストールしようとしたが、そんな名前のファイルはないと言われる。

Error: No similarly named formulae found. Error: No available formula or cask with the name "php-pgsql".
php artisan config:clear

キャッシュのクリアしてみたが変化なし。

どう解決すればいいのでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

phper.k

2021/05/15 16:10

PHPの実行環境は Mac ? それとも何かの仮想環境?
退会済みユーザー

退会済みユーザー

2021/05/15 16:15

実行環境はmacでローカル環境です。
phper.k

2021/05/15 16:15

大切な情報なので、質問本文に追記してください。
退会済みユーザー

退会済みユーザー

2021/05/15 16:16

追記したしました。ご指摘ありがとうございます。
phper.k

2021/05/15 16:21 編集

質問1) PHP は homebrew で インストールしましたか? それとも、何もせず、もともと入っている PHP ですか? 質問2) インストールしたい PHPのバージョンは?
退会済みユーザー

退会済みユーザー

2021/05/15 16:27

PHP は homebrew で インストールしたと思います。 インストールしたいPHPのバージョンとはなんのことでしょうか? すでにPHPはインストールされているのですが...
phper.k

2021/05/15 16:30 編集

あなたの Mac インストールされている PHP は7.4 になっている。 最新は 8.0 。教材など使って学習しているとかなら、教材のバージョンに合わせた方がいいはずでは?
退会済みユーザー

退会済みユーザー

2021/05/15 16:34

教材とかは特に使ってないので、バージョン合わせるとかはないですね。 PHPのバージョンが今回の解決する糸口という認識でよろしいでしょうか?
phper.k

2021/05/15 16:37

関係ない。 特定のバージョンをインストールしたいなら、回答が変わるから聞いた。 mac の ターミナルで、以下のコマンドを実行した時に、表示される値を提示してください。 brew list --versions | grep php
退会済みユーザー

退会済みユーザー

2021/05/15 16:39

php@7.3 7.3.28_1です
phper.k

2021/05/15 16:41

以下のコマンドを叩いた時にそれぞれどのように表示されますか? php -m | grep pgsql which php
退会済みユーザー

退会済みユーザー

2021/05/15 16:45

php -m | grep pgsql→何も表示されない which php→/usr/bin/phpです。
phper.k

2021/05/15 16:47

では、以下のコマンドを実行した結果を /usr/bin/php -v
退会済みユーザー

退会済みユーザー

2021/05/15 16:48

WARNING: PHP is not recommended PHP is included in macOS for compatibility with legacy software. Future versions of macOS will not include PHP. PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies
phper.k

2021/05/15 16:51 編集

brew install php@7.3 でまず、PHPをインストールする。 通常これだけで、 pgsql も一緒にインストールされる
退会済みユーザー

退会済みユーザー

2021/05/15 16:54

PHPをインストールしなおした場合は、プロジェクトも作り直した方がよろしいでしょうか?
phper.k

2021/05/15 16:57 編集

なんで?質問の意図がわかりません。
退会済みユーザー

退会済みユーザー

2021/05/15 16:59 編集

PHPをインストールし直すと、作っていたプロジェクトに影響出ると思ったから
phper.k

2021/05/15 16:59

バージョンに依存するような機能を使っているなら、影響あるかもしれない。 ただ私はあなたのプロジェクトがどんなのものか知るよしもないので、聞かれたところで、わかるわけがありません。
phper.k

2021/05/15 17:50

brew install php@7.3 これの結果どうなったのかぐらいフィードバックないの?
退会済みユーザー

退会済みユーザー

2021/05/16 01:45

何も状況は変わっていないです。
phper.k

2021/05/16 04:49

brew install php@7.3 を実行した結果、「何も状況は変わっていない」では何も情報がないので、次の手が打てない。 回答する側が何を求めているのかそこに気が回らないようでは、一向に問題は解決しないよ。
退会済みユーザー

退会済みユーザー

2021/05/16 06:49

申し訳ないです。再度インストールしなおしましたが、マイグレーション実行しても同様のエラー(ドライバーがない)でした。 色々記事調べてみたところ、php.iniとかも関係してくるのかな?と考えています。 php --iniを実行してみたところ、 Configuration File (php.ini) Path: /etc Loaded Configuration File: (none) Scan for additional .ini files in: (none) Additional .ini files parsed: (none) とあり、laravelのプロジェクトにある.ini見てみると、空のファイルとなっていました。 いくつかの記事には、pgsqlの部分のコメントアウトを外して有効にするとかありましたが、その記述すらないので、これが原因だったりますか?
phper.k

2021/05/16 06:51

全然お門違い。 まず、あなたは自分のマシンの状態を正確に把握しないまま、手当たり次第に銃を乱射している状態。 まずこれを改め、現状を正確に把握すること。
phper.k

2021/05/16 06:53

問題は、これまで、コマンドを示して、その結果を貼ってくれと言っているのはその現状を把握するためだ。 なんせ、質問者であるあなた自身が、自分の持ち物の状態を正確に把握していないからだ。 問題は、php -v で結果が返ってこないことにより、PHP自体が正確にインストールされていないことにある。 PDO 云々以前の状態だ。
guest

回答1

0

ベストアンサー

まず、何事も問題を解決するには現状把握が大切です。

PHPのPDOを使ってPostgreSQLに接続したいわけです。

ということは、主な登場人物は3人、「PHP」「PDO」「PostgreSQL」ですね。

基本のき

さまざまなアプリケーションにおいて、正常にインストールされていることを確認する手法のなかで、1番簡単(ただし不正確な可能性あり)なものは「バージョンを確認する」ことです。

ここで、バージョン確認をする方法を確認しましょう。

command

1# PHP 2> php -v 3 4# PostgreSQL 5> psql --version

特に目立ったエラーがなく、バージョンが表示されることを確認できましたか?

エラーがある場合、それが正しくインストールできていないことになります。

インストール方法

PHP

command

1> brew install php@8.0 2> php -v

PHPのバージョン8.0系がインストールできましたか?

もし、違うバージョンが表示される場合は以下を試してください。

command

1> brew unlink php@7.4 2# 7.4の部分は適時変えてください。

エラーが出る場合は、エラー文をコピペしてコメントしてください。

PostgreSQL

長すぎるので丸投げします。
https://qiita.com/yorokobi_kannsya/items/f77d074e382a88dae971

投稿2021/05/16 14:51

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問