私は私のpostgresデータベースのすべての機能のバックアップを取りたいと思っています。Postgresの機能のバックアップを取る方法は?Postgresでのみ機能のバックアップを取る方法
17
A
答えて
36
使用pg_getfunctiondef
; system information functionsを参照してください。 pg_getfunctiondef
がPostgreSQL 8.4で追加されました。あなたはpg_catalog
でシステムテーブルを照会することができ、スキーマ内のすべての機能をダンプする
SELECT pg_get_functiondef('proc_name'::regproc);
。
SELECT pg_get_functiondef(f.oid)
FROM pg_catalog.pg_proc f
INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public';
それはあなたが欲しいものだ場合、それは代わりに「pg_
で始まるものを除くすべてのスキーマから」を言うために上記を変更するには些細です:あなたはpublic
からすべてを望んでいた場合は言います。 psql
で
あなたがファイルにこれをダンプすることができます:あなたはのDB等との機能を複製している場合
psql -1 -v ON_ERROR_STOP -f /path/to/output/file.sql target_db_name
:ようなものを使用し、別のDBに出力を実行するには
psql -At dbname > /path/to/output/file.sql <<"__END__"
... the above SQL ...
__END__
ただし、svnやgitのようなリビジョン管理システムにSQLスクリプトとして関数定義のオーサリングコピーを格納することをお勧めします。これは、PostgreSQL拡張としてパッケージ化することが望ましいです。 packaging extensionsを参照してください。
17
pg_dump
に機能のみをダンプするように指定することはできません。ただし、データなしでダンプを作成し(-s
)、リストア時にフィルタリングすることができます。 -Fc
の部分に注意してください:pg_restore
に適したファイルが生成されます。
まずダンプを取る:
pg_dump -U username -Fc -s -f dump_test your_database
は、次に関数のリストを作成します。
pg_restore -U username -d your_other_database -L function_list dump_test
:
pg_restore -l dump_test | grep FUNCTION > function_list
そして最後には、それらを(-L
は、上記で作成したリストファイルを指定します)を復元します
関連する問題
- 1. xamlでより多くの機能を読み取る方法
- 2. Postgresトリガー機能
- 3. androidのListViewのバックアップを取る方法
- 4. javaを使用してpostgresデータベースをバックアップする方法
- 5. Postgresの最小機能パフォーマンス
- 6. BugTracker.netのバックアップを取る方法は?
- 7. C/C++での通常のファイル読み取り機能を使用してメディアファイルを読み取る方法は?
- 8. Accessデータベースを使用してDelphiでデータベースアプリケーションにバックアップ機能をコーディングする方法
- 9. postgresストアドファンクションからUDTを読み取る方法
- 10. Heroku Postgresからバックアップをエクスポートする
- 11. MySQLのバックアップが機能しない
- 12. デベロッパーモードでのみ機能を有効にする方法
- 13. sqldeveloperで '接続の詳細'のバックアップを取る方法は?
- 14. zxingバーコード読み取りアプリケーションでズーム機能を実装する方法は?
- 15. Postgresでデータ型の利用可能性を調べる方法
- 16. Plastic SCMでリポジトリのバックアップを取る方法は?
- 17. PythonでBPMとテンポのオーディオ機能を取得する方法
- 18. データベースのバックアップ方法
- 19. 読み取り機能上のセグメンテーションフォルト
- 20. UIToolbarカスタムボタンで組み込みの「編集」機能と「追加」機能を呼び出す方法
- 21. Adbバックアップが機能しない
- 22. lodashバージョン4の_.pick機能を取得する方法
- 23. 競合機能でjQuery ajaxデータを取得する方法は?
- 24. ローカルストレージデータをバックアップする方法
- 25. PostgresトリガはINSERTでは機能し、DELETEでは機能しません
- 26. SQLサーバーでバックアップはどのように機能しますか?
- 27. このズーム機能とズーム機能を実現する方法
- 28. 機能がstapplingin SharePointで機能を作成する方法?
- 29. postgres 9の複製を使用してバックアップのダウンタイムを短縮することは可能でしょうか?
- 30. postgres UTF8クライアントエンコーディングで "€"(u + 20AC)文字を取得する方法は?
また、これらの関数を別のdbに復元したいのですがどうすればいいですか?関数は復元する必要があります – vmb
@vmb出力はSQL関数定義なので、それらをpsqlにパイプします。更新された回答をご覧ください。さらに、エクステンションを作成してパッケージ化してください。 –
'pg_get_functiondef( 'proc_name' :: regproc)' **は、関数定義の一部とみなされることがある関数の特権( 'GRANT'と' REVOKE'文)をダンプしません。 – NumberFour