PostgreSQL スキーマをコピーする

スキーマをコピーする方法はない。
代わりに以下の方法で同じ効果を得る。

  1. スキーマ名Aをスキーマ名Bに変更する
  2. スキーマ名Bの状態でpg_dumpする
  3. スキーマ名Bをスキーマ名Aに変更する
  4. スキーマ名Bを作成する
  5. pg_dumpしたファイルをリストアする

Statementは以下の通り。


$ 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

[arst_adsense slotnumber=”1″]