Có cách nào để chỉ xuất các khung nhìn từ lược đồ Postgres không?Chỉ xuất các dạng xem trong Postgres
Tôi đang sử dụng Postgres 8.4.
Cảm ơn bạn.
Có cách nào để chỉ xuất các khung nhìn từ lược đồ Postgres không?Chỉ xuất các dạng xem trong Postgres
Tôi đang sử dụng Postgres 8.4.
Cảm ơn bạn.
Nếu bạn có mỗi cái nhìn đầu bằng tiền tố nhất định, bạn có thể sử dụng lệnh này:
pg_dump -s -t 'prefix*' dbname > db.dump
hoặc bạn có thể sử dụng -t chuyển càng nhiều càng tốt với những cái tên quan điểm ... Xem manpage cho pg_dump, ở cuối dòng là các ví dụ ...
Không có cờ trực tiếp để làm điều này, nhưng sử dụng yêu thích của chúng tôi truy vấn-the-schema-to-tạo-một-lệnh kỹ thuật:
select string_agg('-t ' || quote_ident(nspname) || '.' || quote_ident(relname), ' ')
from pg_class join pg_namespace on pg_namespace.oid = pg_class.relnamespace
where relkind = 'v' and not (nspname ~ '^pg_' or nspname = 'information_schema');
này sẽ tạo ra một chuỗi có thể được sử dụng với một pg_dump lệnh, ví dụ:
-t media.duplicated_component -t adv.advert_view_distribution
Mà bạn sau đó có thể ghép thành một dòng lệnh trực tiếp:
pg_dump $(psql -c "select string_agg(...etc...)" db) db
Lưu ý rằng thao tác này sẽ xuất các chế độ xem chứ không phải dữ liệu mà lượt xem quay lại. Điều này có lẽ là hiển nhiên đối với hầu hết, nhưng không phải lúc đầu tôi. Để xuất dữ liệu được trả về bởi một chế độ xem, hãy xem http://stackoverflow.com/questions/1745105/postgres-dump-of-only-parts-of-tables-for-a-dev-snapshot –
Có thể bạn sẽ thích bỏ '-s' và vẫn sử dụng' pg_dump', thay vì đi xuống tuyến đường 'COPY' được thảo luận về câu hỏi đó – kez