スキーマをコピーする方法はない。
代わりに以下の方法で同じ効果を得る。
- スキーマ名Aをスキーマ名Bに変更する
- スキーマ名Bの状態でpg_dumpする
- スキーマ名Bをスキーマ名Aに変更する
- スキーマ名Bを作成する
- pg_dumpしたファイルをリストアする
Statementは以下の通り。
1 2 3 4 5 6 |
psql -U user -d dbname -c 'ALTER SCHEMA old_schema RENAME TO new_schema' pg_dump -U user -n new_schema -f new_schema.sql dbname psql -U user -d dbname -c 'ALTER SCHEMA new_schema RENAME TO old_schema' psql -U user -d dbname -c 'CREATE SCHEMA new_schema' psql -U user -q -d dbname -f new_schema.sql rm new_schema.sql |