2009-04-19 12 views
2

私のチームは、データベース移行を管理するためにdbdeployを評価しています。私が理解しているように、マイグレーションを使用するには、プロセスの規律が少しずつ必要です。つまり、移行がすべての変更に対して実行され、生産に到達するためには、ローカルから開発にテストに移る必要があります。運用管理データベースに加えられたスキーマの変更を移行管理プロセスにマージするにはどうすればよいですか?

生産現場のDBAチームが、実稼働環境に直接スキーマを変更することがあります。新しいマイグレーションを作成して現在の開発バージョンのデータベースに対して変更を加えた場合、そのマイグレーションは、マイグレーションが本番環境にデプロイされるまで、変更が既に含まれているスキーマに対してテストされることはありません。これは私にとって心配です。

もう1つの選択肢は、ベースラインスキーマに直接変更し、すべての環境(ローカル、開発、テスト、ステージ)でデータベースを再構築することです。新しいスキーマによって1つ以上の移行が中断する可能性があるため、このアプローチは私に関係しています。

このシナリオを現在どのように処理していますか?

答えて

0

生産スキーマ上のDBの変更は、時々起こらなければならないことは理解できます。これは非常に重要ですが、これらを文書化してASAPを開発チームに送り返す必要があります。影響を受けるユースケース/機能とコメントの可能性のあるバグ追跡に関する問題と一緒にSQLを実行したプレーンテキスト

ライブDBを毎回開発中にフェッチし、開発者が持っているものと比較する同様に良いアイデアです。

0

DBAがプロダクションDB上で変更できるのは、ここでインデックスを追加し、いくつかのsprocsを調整することです。パフォーマンスのためです。 DBに対する他のすべての変更は、一般に、DBスキーマをアプリケーションと互換性のないものにすることができます。

これを念頭において、実際にバージョン管理する必要があるのはsprocsであり、ソース管理にチェックするのはDBAの責任です。インデックスは非常に揮発性であり、実際には移行スクリプトに含まれないことがあります。

3

私たちは本番DBのコピーを一晩テストサーバーに復元します。

そして、これは機能します:私たちは

  • 私たちは、実際のデータに対してテストすることができます行われた変更をリセットすることができます
  • 参照コピー(コードとデータ)として

    • 我々は左右することができますサイド新しい/古いコードpreformanceの
    • によって私たちは、100%安全な変更/ロールバックスクリプト(レッドゲート)
    を生成することができます

    私たちはdev/testデータベースなどを再構築しませんが、私たちの仲間のプロジェクトの中にはいくつかあります。しかし、データベースはスキーマとコードではないので、私は利益が得られないと思っています。それもデータです。これは、準拠した.netアプリケーションとは異なります。

    私のお店では、プロダクションDBに変更を加えたプロダクションDBA(承認されていないもの)が承認されることなく解雇されます。そして、それが起こった。

  • 関連する問題