Обсуждение: A few questions about foreign tables
Hello, I want to set up a few foreign tables (to access tables from one PostgreSQL database in another one). However, I want to do it "properly", using a database migration tool, so I need to have a "down" migration to revert to the previous state. How to revert the effect of "import foreign schema"? Is just dropping the imported tables enough? Also, how can I check the definitions (i.e., what tables on the server they correspond to) of existing foreign tables? (May I ask to be cc'd since I'm not subscribed to the list?) TIA, -- Marcin Borkowski http://mbork.pl
On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote: > How to revert the effect of "import foreign schema"? Is just dropping > the imported tables enough? Running DROP FOREIGN TABLE ... for all imported tables is enough. > Also, how can I check the definitions (i.e., what tables on the server > they correspond to) of existing foreign tables? \d+ <table name> > (May I ask to be cc'd since I'm not subscribed to the list?) But please reply to the list. Yours, Laurenz Albe
And SELECT relnamespace::regnamespace::text, relname FROM pg_class WHERE
relkind='f'; tells you all of the foreign tables.
Thus, this (untested) query generate all of the DROP FOREIGN TABLE statements:
SELECT format('DROP FOREIGN TABLE IF EXISTS %I.%I RESTRICT;'
, relnamespace::regnamespace::text, relname)
FROM pg_class WHERE relkind='f'
ORDER BY relkind;
On 10/18/23 10:56, Laurenz Albe wrote:
> On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote:
>> How to revert the effect of "import foreign schema"? Is just dropping
>> the imported tables enough?
> Running DROP FOREIGN TABLE ... for all imported tables is enough.
>
>> Also, how can I check the definitions (i.e., what tables on the server
>> they correspond to) of existing foreign tables?
> \d+ <table name>
>
>> (May I ask to be cc'd since I'm not subscribed to the list?)
> But please reply to the list.
>
> Yours,
> Laurenz Albe
>
>
--
Born in Arizona, moved to Babylonia.
On 2023-10-18, at 17:56, Laurenz Albe <laurenz.albe@cybertec.at> wrote: > On Wed, 2023-10-18 at 10:24 +0200, Marcin Borkowski wrote: >> How to revert the effect of "import foreign schema"? Is just dropping >> the imported tables enough? > > Running DROP FOREIGN TABLE ... for all imported tables is enough. > >> Also, how can I check the definitions (i.e., what tables on the server >> they correspond to) of existing foreign tables? > > \d+ <table name> Thanks. >> (May I ask to be cc'd since I'm not subscribed to the list?) > > But please reply to the list. Of course. -- Marcin Borkowski http://mbork.pl
On 2023-10-18, at 18:14, Ron <ronljohnsonjr@gmail.com> wrote:
> And SELECT relnamespace::regnamespace::text, relname FROM pg_class
> WHERE relkind='f'; tells you all of the foreign tables.
>
> Thus, this (untested) query generate all of the DROP FOREIGN TABLE statements:
> SELECT format('DROP FOREIGN TABLE IF EXISTS %I.%I RESTRICT;'
> , relnamespace::regnamespace::text, relname)
> FROM pg_class WHERE relkind='f'
> ORDER BY relkind;
Thanks, though happily I only have about a dozen of them, so I could
create these by hand (well, actually by some automation features of my
text editor).
Best,
--
Marcin Borkowski
http://mbork.pl