開発、テスト、およびメンテナンスのサイクルによって異なります。また、開発チーム(そしてもちろん組織)の規模と場所についても説明します。データベースの複数のバージョンをサポートしている場合は、さらに多くの環境が必要になる可能性があります。
現実の世界では、次のアプローチはかなり満足のいくものであることがわかりました。
- テスト目的の単一の中央データベース/アプリケーションは、さまざまな開発者によるすべての変更を定期的にマージします
- 開発用のローカルコピー(データベース全体を自由にドロップしてリロードできるようにするため)
- スキーマ、補助データセット、およびサンプルデータセットへの変更については、アップグレードスクリプトが維持されます。
ここにいくつかのさらなるポイントがあります:
2人の開発者(2つのチーム)が互いに影響を与える可能性のある変更に取り組んでいる場合は、タスクを個別に完了してから、統合/マージしてテストする必要があります。このためには、別々の開発環境を用意する方がはるかに優れています(一緒に作業する必要がある場合を除き、同じチームの一部であると見なします。それでも、データベースの独自のコピーで作業し、必要に応じて共有できます)
相互に影響を及ぼさない変更に取り組んでいる場合は、メインサーバーで作業できます。または、データベースの独自のローカルコピー。
したがって、ローカルコピーで開発することには、一般的なケースではリスクなしですべての利点があります(システムの複数のバージョンをサポートし、とにかくアップグレードスクリプトを維持する場合)。
それでも、テストケースを共有できれば素晴らしいので、データベースを簡単かつ迅速にダンプ/復元できることは大きなプラスです。
編集:
上記のすべては、テスト目的(サイズ、パフォーマンス、ライセンスなど)のためにシステム全体のローカルマシンにコピーを置くことが可能であることを前提としています。