コマンドを使用して、Postgres データベースの所有者のいないクリーンなバックアップをダンプしました
pg_dump sample_database -O -c -U
後で、データベースを復元すると
psql -d sample_database -U app_name
ただし、データの復元を妨げるいくつかのエラーが発生しました。
ERROR: must be owner of extension plpgsql
ERROR: must be owner of schema public
ERROR: schema "public" already exists
ERROR: must be owner of schema public
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
SQL が生成するプレーンテキストを掘り下げたところ、 pg_dump
SQL が含まれていることがわかりました。
CREATE SCHEMA public;
COMMENT ON SCHEMA public IS 'standard public schema';
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
原因は、ユーザーがスキーマapp_name
を変更する権限を持っていないためだと思います.public
plpgsql
どうすればこの問題を解決できますか?