PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

pg_dump mà không có nhận xét về các đối tượng?

AFAIK, không phải pg_dump cũng không phải pg_restore có các tùy chọn để xóa COMMENT S. Tuy nhiên, nếu bạn sử dụng định dạng kết xuất nhị phân như:

 $ pg_dump -Fc <your connection> -f /path/to/backup.dump

bạn có thể trích xuất mục TOC và chỉnh sửa nó:

 $ pg_restore -l -f /path/to/backup.toc /path/to/backup.dump

Ở trên sẽ giải nén một tệp TOC và lưu nó tại /path/to/backup.toc , sau đó bạn có thể tìm thấy từng dòng với COMMENT mục nhập và loại bỏ hoặc nhận xét nó. Nếu bạn không sử dụng các tên lạ trên các đối tượng của mình, một sed đơn giản sẽ giải quyết vấn đề, để nhận xét các dòng với COMMENT s bạn có thể làm điều này (dấu chấm phẩy bắt đầu nhận xét):

$ sed -i 's/^\(.* COMMENT .*\)/;\1/g' bar.toc

Với tệp TOC mới này, bây giờ bạn có thể sử dụng pg_restore để khôi phục kết xuất của bạn (với -L tùy chọn):

$ pg_restore -L /path/to/backup.toc -d <your database> /path/to/backup.dump


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt cơ sở dữ liệu dưới quyền git (kiểm soát phiên bản)?

  2. Làm thế nào để trả về một giá trị từ một thủ tục được lưu trữ (không phải hàm)?

  3. Postgres chọn tất cả các cột nhưng nhóm theo một cột

  4. cập nhật nhiều khóa postgres jsonb_set

  5. Làm thế nào để pg_restore