Mam serwer db postgresql, który ma wiele baz danych w nim.Jak uzyskać pg_dump -s, aby uwzględnić polecenie CREATE DATABASE?
postgres=# \list
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+-----------+---------+-------+-----------------------
test1 | postgres | UTF8 | C | C |
test2 | postgres | SQL_ASCII | C | C |
test3 | postgres | SQL_ASCII | C | C |
test4 | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | postgres=CTc/postgres+
| | | | | =c/postgres
(6 rows)
Potrzebuję sposób, aby utworzyć plik zrzutu, który zawiera schemat - w tym CREATE DATABASE oświadczenie - dla bazy danych Próbuję zrzucić.
tej pory mam zorientowali się, że:
pg_dump -s -U postgres -d test1 > test1_only.sql
stworzy schemat tylko dla bazy test1, ale nie obejmuje komendę CREATE DATABASE. Jedynym sposobem udało mi się dostać CREATE DATABASE polecenia wyświetlane było zrobić:
pg_dumpall -s -U postgres > /schema_alldatabases.sql
zrzuci schematu dla wszystkich baz danych. Ale to oczywiście obejmuje wszystkie schematy dla wszystkich baz danych. Na serwerze, na którym mam zamiar przywrócić ten plik, mam już test3 i test4 ... i nie chcę ich zastępować, ponieważ schematy są różne.
Czy mimo to komenda pg_dump -s zawiera komendę CREATE DATABASE? Czy powinienem po prostu użyć pg_dumpall i kontrolować to, co przywracam? jeśli tak, czy możesz pokazać mi, jak mogę przywrócić test1 z pliku zrzutu?
Dzięki.