Đối với tất cả những gì tôi biết, pg_dump
và pg_dumpall
không hỗ trợ bất kỳ hạn chế nào như vậy.
Bạn có thể chuyển tất cả các chức năng của bạn sang một lược đồ chuyên dụng mà bạn có thể loại trừ khỏi kết xuất như sau:
pg_dump mydb -N function_schema > mydump.sql
Nếu đi theo lộ trình đó, bạn có thể di chuyển các hàm sang một giản đồ khác như thế này:
ALTER FUNCTION myfunc() SET SCHEMA function_schema;
Trong trường hợp này, tôi cũng sẽ điều chỉnh search_path
trong postgresql.conf
(và có thể ở các giá trị mặc định cho cơ sở dữ liệu và vai trò)
SET search_path = public,function_schema [,more schemas]
Như một thay thế , bạn có thể để các hàm trong lược đồ mặc định của chúng public
và không sử dụng lược đồ đó cho bất kỳ điều gì khác. Đặt các đối tượng của bạn trong một hoặc nhiều lược đồ riêng biệt. Điều đó sẽ giúp nâng cấp PostGis dễ dàng hơn.
Có thể là một ý kiến hay để không sử dụng public
lược đồ cho các đối tượng của bạn. Tôi thường dành nó cho PostGis hoặc các tiện ích mở rộng khác cài đặt vào public
theo mặc định. Tôi thích sử dụng một lược đồ chuyên dụng cho mọi ứng dụng. Giúp bảo trì dễ dàng hơn - bao gồm sao lưu và cấp quyền.