2016-06-22 10 views
0

本番用データベースの状態を反映したプロジェクト用の開発環境をセットアップしたいと考えていますが、そのデータの変更は本番環境では見えません。 PostgreSQLは、同じデータベース上でそれを可能にする機能を提供していますか?例えば、ユーザーが永久にコミットされていないトランザクションを持っているかのように感じさせますか?別々の実動ミラーであるテスト開発DBをセットアップしますか?

答えて

0

どのように機能しますか?

開発データベースで何かを変更した後、本番データベースが互換性のない方法で変更されたとします。
運用システムの変更が失敗したかどうかを確認します。レプリケーションでエラーが発生するかどうか

はおそらくSlonyでこのような設定を行いますが、複雑でプロダクションシステムに余分な負荷がかかり、スキーマの変更が複雑になり、上記の理由で満足できなくなります。

コミットされていないトランザクションで行われる開発データベースの変更は興味深いですが、トランザクション処理をテストできず、他のトランザクションが自分のトランザクションの作業を見ることができない場合、どのように合理的な方法で開発できますか?

ベストプラクティスは、実稼働システムから定期的に更新されるテストデータベースを、理想的には夜間運用データベースのバックアップを自動的に復元することです(バックアップをテストするという利点があります)。

+0

夜間のバックアップを復元するのは良いことですが、一日のうちに本番をコピーできるようにしたい場合があります。生産にバグがあり、すぐに解決策をテストしたいとします。 – d33tah

+1

その場合は、 'pg_dump' /' pg_restore'や - faster - 'pg_basebackup'を実行することができます。 –

+0

これはおそらく動作する可能性があります! – d33tah

関連する問題