ソフトウェア製品の開発というすでに困難なプロセスでは、時々非常に不快な質問が発生します。 それらの1つは、データベース構造の処理方法、バージョン情報の保存方法、サーバー上のデータベースコピーの更新方法、およびコラボレーションの整理方法です。
問題
データベースは、アプリケーションの不可欠な部分です。 バージョン1.0データベースに基づいてこのアプリケーションのバージョン2.0をデプロイすると、一般的な場合、結果は動作不能なプログラムになります。 そのため、データベースはプログラムのソースコードのすぐ横にあるバージョン管理システムに配置する必要があります。
問題の全体的なポイントは、データベースの場合に「直接」条件が満たされるのが非常に難しいという事実にあります。 問題は、バージョン管理システムに正確に何を保存するかです。 データベース全体? 完全に無意味な活動。 スクリプト化されたデータベーススキーマ全体ですか? 次に、既存の構造に増分変更を加える方法は? 増分変更を伴うスクリプトですか? もちろん、これが最も正しい決定になりますが、スクリプトが正しい順序で、必要な回数だけ、必要なデータベースに正確に適用されるようにする方法はどうでしょうか?
解決策
この時点で、特別な手段がシーンに入ります。
それらの1つ(すべてが開始された不cru慎なPRが始まります)-オクタルフォーティーWizardby。 このツールを使用すると、データベーススキーマを「条件に合わせる」ことを自動化して、必要なすべての操作を次の2つに減らすことができます。移行の記述と、前述の移行を処理するコンソールアプリケーションの操作。
実際、「移行」は、バージョン
Nのデータベーススキーマからバージョン
N + 1スキームを作成する方法について説明する指示です
。 他の(非常に異なる)言葉で:
migration "Oxite" revision => 1: <br> version 20090323103239:<br> add table oxite_Language:<br> add column LanguageID type => Guid, nullable => false , primary - key => true <br> add column LanguageName type => AnsiString, length => 8, nullable => false <br> add column LanguageDisplayName type => String, length => 50, nullable => false <br><br> * This source code was highlighted with Source Code Highlighter .
さらに:

最後に:

しかし、もしそうなら:
version 20090330170528:<br> oxite_User:<br> UserID type => PK, primary - key => true <br> Username type => LongName, unique => true <br> DisplayName type => LongName<br> Email type => LongName<br> HashedEmail type => ShortName<br> Password type => MediumName<br> PasswordSalt type => MediumName<br> DefaultLanguageID references => oxite_Language<br> Status type => Byte, nullable => false <br> <br> oxite_UserLanguage:<br> UserID references => oxite_User<br> LanguageID references => oxite_Language<br><br> index "" columns => [UserID, LanguageID], unique => true , clustered => true <br> <br> * This source code was highlighted with Source Code Highlighter .
とにかく、ウィザードビーは同じことをすべて行います。

プロジェクト
プロジェクトページ(MITライセンスの下でライセンスされて
います)は
こちらです。 ソースコードは、
ZIPアーカイブまたは
SVNリポジトリで入手でき
ます 。 さらに、すでに
コンパイルされたバージョンの ZIPアーカイブがあります。 ドキュメント(英語)は
こちらです。 そして、
ここで Wizardbyが「実生活」でどのように使用されているかを見ることができます。