FDW を使用して、ローカル上の postgres データベース間のリンクを作成しようとしています。このリンクを作成するコードは次のとおりです。
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
CREATE SERVER IF NOT EXISTS TEST_SERVER FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '127.0.0.1', dbname 'TestDatabase', port '5432');
CREATE USER MAPPING IF NOT EXISTS FOR postgres SERVER TEST_SERVER OPTIONS (user 'postgres', password 'postgres');
CREATE FOREIGN TABLE IF NOT EXISTS TEST_PUBLIC.TEST_TABLE(
ID INT NOT NULL,
VALUE VARCHAR(11) NOT NULL
) SERVER TEST_SERVER;
TEST テーブルは TestDatabase に存在し、test_public スキーマは、FDW を作成している現在のデータベースに存在します。最初にこれを作成してテストしたとき、問題なくオブジェクトを確認できましたが、(この特定のプロジェクトの) 開発プロセスの一部は、現在のすべてのオブジェクトを削除し、最初から再実行することです。最初から最後まですべてがしっかりしていることを私たちが知っている新しい環境。
私が抱えている問題は、外部テーブル「TEST_TABLE」が表示されなくなったことです。
これを実行すると:
SELECT * FROM information_schema.tables WHERE table_schema = 'test_public'
以下が返されます。
table_catalog table_schema table_name table_type
TestDatabase test_public test_table FOREIGN
しかし、テーブル test_public.test_table から選択すると、次のエラーが発生します。
relation "test_public.test_table" does not exist
途中ですべての問題を解決することができましたが、完全な展開ではなく段階的に実行した後でも、外部テーブルにアクセスできなくなったようです。私が欠けているものに関する提案はありますか?