28

PostgreSQLデータベースオブジェクトの作成スクリプトが必要です。

pg_dumpにアクセスできません。したがって、SQLクエリですべてを取得する必要があります。どうすればこれを行うことができますか?

4

3 に答える 3

47

関数の定義を取得するには、次を使用しますpg_get_functiondef()

select pg_get_functiondef(oid)
from pg_proc
where proname = 'foo';

インデックス、ビュー、ルールなどの定義を取得する同様の関数があります。詳細については、マニュアルを参照してください: http://www.postgresql.org/docs/current/static/functions-info.html

ユーザー タイプの定義を取得するのは、もう少し注意が必要です。information_schema.attributesそのためにクエリを実行する必要があります。

select attribute_name, data_type
from information_schema.attributes
where udt_schema = 'public'
  and udt_name = 'footype'
order by ordinal_position;

create typeそこから、ステートメントを再構築する必要があります。

詳細については、システム カタログのドキュメントを読む必要があります: http://www.postgresql.org/docs/current/static/catalogs.html

ただし、information_schemaビューが同じ情報を返す場合は、ビューを優先する必要があります。

于 2012-08-27T20:31:00.287 に答える
14

psql -Eこれらのクエリの探求に役立ちます。バックスラッシュコマンドを実行するときに使用する
クエリを表示します-この関数の詳細については同様です。psql\df+ myfunc

于 2012-08-27T22:45:22.183 に答える