İçinde birden çok veritabanı bulunan bir postgresql db sunucum var. Bir create database deyimi dahil - -CREATE DATABASE komutunu eklemek için pg_dump -s nasıl alınır?
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)
Ben şema içeren bir döküm dosyası oluşturmak için bir yol gerekir ben dökümü çalışıyorum veritabanı için.
pg_dump -s -U postgres -d test1 > test1_only.sql
sadece test1 veritabanı için şema oluşturacak, ancak create database komutu içermez:
Şimdiye kadar, bunu anladım.
pg_dumpall -s -U postgres > /schema_alldatabases.sql
tüm veritabanları için şema dökümü olacak: Ben görünmesini create database komutunu elde edebildi tek yolu yapmak oldu. Ancak bu daha sonra tüm veritabanları için tüm şemaları içerir. Bu dosyayı yeniden yükleyeceğim sunucuda, zaten test3 ve test4'üm var ... ve şemalar farklı olduğundan, bunların üzerine yazmak istemiyorum.
pg_dump -s komutu CREATE DATABASE komutunu içerecek şekilde var mı? Veya, sadece pg_dumpall kullanmalı ve ne geri yüklediğimi kontrol etmeliyim? öyleyse, test1'i döküm dosyasından nasıl geri yükleyebileceğimi gösterebilir misiniz?
Teşekkürler.