Postgresql-9.3
PostgreSQL 9.3:pg_dump 由於tiger.direction_lookup 而失敗
我正在嘗試從我的 PostgreSQL 9.3+PostGIS 數據庫之一中轉儲架構:
/usr/lib/postgresql/9.3/bin/pg_dump --schema-only -h stg-db.....rds.amazonaws.com -U user_name db_name > stg_db_schema.sql
該命令在我的開發數據庫上執行良好,但在 stg 和 prod 上失敗,原因是:
pg_dump: [archiver (db)] query failed: ERROR: permission denied for relation direction_lookup pg_dump: [archiver (db)] query was: LOCK TABLE tiger.direction_lookup IN ACCESS SHARE MODE
問題似乎是
tiger.direction_lookup
. 我用Google搜尋了一下,這張表似乎與 PostGIS 有關。我試過
--exclude-table-data=tiger.direction_lookup
了,但沒有效果(無論如何它不應該適用於模式)。知道如何能夠轉儲我的數據庫的架構嗎?
看來我不得不重新執行AWS RDS PostGIS 指令:
CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$; SELECT exec('ALTER TABLE ' || quote_ident(s.nspname) || '.' || quote_ident(s.relname) || ' OWNER TO rds_superuser') FROM ( SELECT nspname, relname FROM pg_class c JOIN pg_namespace n ON (c.relnamespace = n.oid) WHERE nspname in ('tiger','topology') AND relkind IN ('r','S','v') ORDER BY relkind = 'S') s;
這顯然是一個 RDS 錯誤,因為這些指令不應該被多次執行。
這可能是由於數據庫次要版本升級而發生的。