これを行う最も簡単な方法は、データベースをテキスト ファイルにバックアップすることだと思います。
pg_dump database_name > database_name.pg_dump
そうしないと、バックアップからデータベースを復元するのが難しくなるため、それらは適切な依存関係の順序になります。バックアップ ファイル内の関数とビューの定義を編集し、新しいデータベースに復元することができます。
データベース バックアップ ファイルが大きすぎてエディターで編集できない場合、Postgres 9.2 以降では、それを 3 つのセクションに分割できます。
pg_dump --section=pre-data > database_name.1.pg_dump
pg_dump --section=data > database_name.2.pg_dump
pg_dump --section=post-data > database_name.3.pg_dump
小さい最初のセクションのみを編集します。古いバージョンでは、たとえばsplit
ユーティリティを使用できました。
バックアップと復元に必要なダウンタイムを許容できない場合は、さらに複雑になります。ただし、バックアップ ファイルを使用することをお勧めします。Postgres はトランザクションで DDL をサポートしていることを思い出してください。トランザクションで関数とビューをインポートしてエラーが発生した場合は、すべての変更をロールバックして修正し、再試行するだけです。