私は、PostGIS関数がロードされたPostgreSQLデータベースを持っています。私は、データベースのスキーマをダンプしたいと思いますが、pg_dump -s
はテーブル定義と共に関数をダンプします。PostgreSQLデータベースをダンプする際に関数定義を除外する
関数を除外してテーブル定義をダンプする方法はありますか?
私は、PostGIS関数がロードされたPostgreSQLデータベースを持っています。私は、データベースのスキーマをダンプしたいと思いますが、pg_dump -s
はテーブル定義と共に関数をダンプします。PostgreSQLデータベースをダンプする際に関数定義を除外する
関数を除外してテーブル定義をダンプする方法はありますか?
私が知っている限り、pg_dump
とpg_dumpall
は、このような制限をサポートしていません。
あなたはあなたは、このようなダンプから除外することができ、専用のスキーマに、すべての機能を移動することができ:
pg_dump mydb -N function_schema > mydump.sql
あなたはそのルートを行く場合は、あなたがこのようなmigrate functions to another schema次のことができます。
ALTER FUNCTION myfunc() SET SCHEMA function_schema;
この場合、search_path
をpostgresql.conf
(データベースとロールのデフォルトの場合もあります)に変更します
SET search_path = public,function_schema [,more schemas]
代替として、あなたはそれらのデフォルトスキーマpublic
に機能を残すことができるし、他の何かのためにそのスキーマを使用していません。オブジェクトを1つ以上の別々のスキーマに入れます。 PostGisのアップグレードが容易になるはずです。
ではなく、オブジェクトのスキーマをpublic
にするのが一般的です。私は通常、デフォルトでpublic
にインストールされているPostGisやその他の拡張機能のために予約しています。すべてのアプリケーションに専用のスキーマを使用するのが好きです。バックアップや許可の許可を含むメンテナンスが容易になります。
または、pg_restoreの--list関連オプションを使用して、生成されたリストから項目を手動でトリミングできます。 –
これを例に見てください:http://stackoverflow.com/a/31043192/985 –