わかりました... PostgreSQL と PDO に関するすべての Q&A を調べましたが、私の質問に答えられませんでした... Google で答えを見つけるのと同じ問題です。
したがって、私はマスターの足元に質問を置きます。
MySQLのバックグラウンドから来て、PostgreSQLを使い始めたばかりです。PDO を使用して接続し、pgAdminIII を使用してデータベース自体を管理しています。
定義済みのテーブルスペースにスタックしているテーブルに接続するにはどうすればよいですか?
$db = new PDO("pgsql:host=127.0.0.1;user=pageserver;password=myPassword;dbname=pageserver;");
結果は次のとおりです。
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] FATAL: database "pageserver" does not exist' in ~stacktrace~
誰かが言及する前に、確かに、try/catch を使用する必要があります。これがさらに進むにつれて使用します...しかし、今のところ、エラーは役に立ちます。
このデータベースは存在しますが、このプロジェクトで使用しているすべてのデータベースは、データベースを特定のサブフォルダー内に保持するためにテーブルスペースに配置されています。
これが私の問題が発生する場所であると想定しています。これまでのところ、PDO ドキュメントのどこにもテーブルスペースに関する参照はありません。
PostgreSQL のドキュメントは明らかにテーブルスペースについて非常に詳しく説明していますが、テーブルスペースに接続するための PDO 構文については言及していません。
私はそれが次のような単純なものであることを願っています:
$db = new PDO("pgsql:host=127.0.0.1;tablespace=system;user=pageserver;password=MyPassword;dbname=pageserver;");
しかし、これは次の結果になります。
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] invalid connection option "tablespace"' in ~stacktrace~
@イゴール
さて、私はさらにテストを実行し、構造を調査し、ロール、スキーマ、テーブルスペース、およびテーブルがすべて揃っていることを確認するのに約30分を費やしました...
それらはすべて整然としていて、実際に正しくセットアップされていました。
あなたが推奨するように schema.database 名を使用してみましたが、うまくいきませんでした。
それから、ずっと私を悩ませていた問題を発見しました。
どうやら、データベースをセットアップした後、すべてのインデックスを含めて40近くのテーブルがありました...私の問題はPostgreSQLでさえありませんでした。
それは、PgAdminIII と私の完全な睡眠不足の悪い組み合わせでした。
どうやら、これらのテーブルはすべて、配置される予定のデータベースの下ではなく、データベース「postgres」の下にセットアップされたようです。
私のばかげたことをお詫び申し上げます。はっきりと見ていただきありがとうございます。
正しいとマークされています。