Okazuje się, że po przywróceniu należy przyznać właścicielowi jawne prawo własności do wszystkich obiektów w bazie danych. Właściciel nie jest superużytkownikiem. Nie wystarczy ustawić właściciela tylko w momencie tworzenia bazy danych. Ostateczne rozwiązanie migracji wygląda tak:
na kliencie:
pg_dump -f dump.sql -Ox database
na serwerze:
su postgres
dropdb database
createdb database -O user
psql database -f dump.sql
a następnie ustawić uprawnienia:
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;"
Zauważ, że mogliśmy uruchomić polecenie sql w konsoli psql, ale ten formularz można łatwo osadzić w skryptach i tym podobnych.