5

私は自分の開発プロジェクトで SVN を使用した経験が少なく、リレーショナル データベースの経験もほとんどありません。テーブルや SQL ステートメントなどの基本的な概念は知っていますが、専門家にはほど遠いです。

私が知りたいのは、SVN のような一般的なバージョン管理タイプのシステムがあるかどうかですが、それはファイルではなくデータベースで動作します。ブランチの作成、タグの作成、ブランチのマージなど、SVN で得られるのと同じ種類の機能が欲しいです。リビジョン番号がファイル リポジトリのバージョンに関連付けられるのではなく、データベースのバージョンに関連付けられます。

実際のデータベース スキーマとは関係なく、この種の機能を追加できる一般的なソリューションはありますか? MySQL または MS SQL Server で動作するソリューションに興味があります。

また、スキーマではなくデータをバージョン管理しようとしていることも明確にする必要があります。スキーマが一定のままであることを期待します。したがって、データの各バージョン間でデータベースに送信されたすべての INSERT、UPDATE、および DELETE 要求のログを作成する方法が必要なようです。そうすれば、目的のバージョンまで保存されたすべての SQL ステートメントを再送信することで、任意のバージョンを再作成できます。

4

4 に答える 4

1

すべての DDL、ストアド プロシージャなどを通常のテキスト ファイルにスクリプト化できます。

次に、データベースのバージョン管理に SVN を使用するだけです。

于 2010-03-09T19:12:38.527 に答える
1

Subversion と同じように機能するソリューションを見つけたことはありませんが、私が行ったいくつかのことは役に立ちました:

  1. スキーマを作成し、初期データを入力するスクリプトを作成します。その後、変更ごとに更新スクリプトを作成します。これはかなり手動のプロセスですが、機能します。データベースのテーブルに現在のバージョン番号を保存したり、スクリプトがべき等であることを確認したりするなど、役立つ追加機能があります

  2. 完全な開発データベースを Subversion に保存します。多くのデータがある場合、または頻繁に変更される場合、これは通常あまりうまくいきません。ただし、一部のプロジェクトでは機能する可能性があります。

于 2010-03-09T19:15:20.320 に答える
0

私が考えることができる2つのことがあります:

  • http://www.liquibase.org/ - データベースの変更を一般的に管理する方法を提供します。ソース管理にコミットされるファイルを作成し、さまざまな開発データベース間で変更を管理するのに役立ちます。
  • http://www.viget.com/extend/backup-your-database-in-git/ - これは、データベースをソース管理にバックアップするための戦略を説明していますが、同じ戦略をスキーマだけで使用できます。このスキームでは、データベースはメイン コードとは別の領域にあります。(これは、他のソース管理システムでも使用できます。)
于 2010-03-09T19:12:41.233 に答える
0

バージョン管理システムで create スクリプトを保持および維持しています。

于 2010-03-09T19:12:42.110 に答える