Hóa ra là bạn nên cấp quyền sở hữu rõ ràng tất cả các đối tượng trong cơ sở dữ liệu cho chủ sở hữu sau khi khôi phục. Chủ sở hữu không phải là một superuser. Chỉ đặt chủ sở hữu tại thời điểm tạo cơ sở dữ liệu là không đủ. Giải pháp cuối cùng cho việc di chuyển diễn ra như sau:
trên máy khách:
Cơ sở dữ liệupg_dump -f dump.sql -Ox database
trên máy chủ:
su postgres
dropdb database
createdb database -O user
psql database -f dump.sql
và sau đó để đặt các đặc quyền:
psql database -c "GRANT ALL ON ALL TABLES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to user;"
Lưu ý rằng chúng ta có thể chạy lệnh sql trong bảng điều khiển psql nhưng biểu mẫu này có thể dễ dàng nhúng vào các tập lệnh và như vậy.