PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgres:il modo migliore per spostare i dati dallo schema pubblico di un DB al nuovo schema di un altro DB

Il modo più semplice per farlo è rinominare gli schemi. Tuttavia devi essere sicuro di essere un utente unico del database db1.

Per prima cosa, nascondi il tuo schema public in db1:

alter schema public rename to original_public;
create schema public;

Quindi, esegui il backup e il ripristino:

$ pg_dump --format custom --file "my_backup" --schema "public" "db2"
$ pg_restore --dbname "db1" "my_backup"

Infine, ricrea i nomi degli schemi appropriati:

alter schema public rename to my_schema;
alter schema original_public rename to public;

Un'altra opzione è usare dblink. Consente l'accesso ai dati di diversi database.