2016-10-13 8 views
0

本番データベースの構造を考慮して、ローカルテストDBをオンザフライで自動的に複製したいと考えています。テーブルを生成するSQLのpostgresデータベースを照会してください

プロダクトDBにクエリを行い、テーブル/ビューを生成するSQLを取得し、そのSQLをクリーンアウトされたローカルDBに対して実行するといいでしょう。

ローカルマシン上で本番データベースを複製する方がよいでしょうか?

これを行うにはどのような方法が最適ですか?

+1

可能な複製(http://stackoverflow.com/questions/4213687/how-to-generate-create-script-of-table [SQL ServerのSQLクエリを使用して、テーブルのスクリプトを作成生成する方法] -using-sql-query-in-sql-server) – johan855

+0

@ johan855:重複しません。 PostgresはSQL Serverではありません。 –

+1

これは間違ったところから近づいています。プロダクションデータベースは、バージョン管理システムに格納されているSQLスクリプト(すべてのスキーマの変更を含む)から作成されている必要があります。テストデータベースをセットアップする必要がある場合は、これらのスクリプトをバージョン管理システムから実行します。 LiquibaseやFlywayのようなツールは、あなたがそれらのスクリプトの実行を整理して追跡するのに役立ちます –

答えて

2

あなたの質問が正しいと分かった場合は、DBスキーマをコピーする必要があります。これを行うにはpg_dump--schema-onlyパラメータを使用できます。データベースのスキーマのみをダンプし、ローカルにインポートすることができます。

$ pg_dump mydb --schema-only > mydb-schema.sql 
関連する問題