質問
現在のペットプロジェクトでは言語-独立したデータベースの移動図書館(Wizardby Googleコードとします。のほうが場所取りすぎでいつけActiveRecordの移動が少niceties.例えば、いくつかの基本型推論"などで指定するタイプのFKです。でもスマートドを"下"スクリプトだけに与えられたアップグレード"シーケンスです。もの移動には特別なDSL、このツールは主として狙いです。純ます。でもデータベース-プラットフォーム独立しています。
こちらは迅速に構文:
migration "Blog" revision => 1:
type-aliases:
type-alias N type => String, length => 200, nullable => false, default => ""
defaults:
default-primary-key ID type => Int32, nullable => false, identity => true
version 1:
add table Author:
FirstName type => N
LastName type => N
EmailAddress type => N, unique => true
Login type => N, unique => true
Password type => Binary, length => 64, nullable => true
add table Tag:
Name type => N
add table Blog:
Name type => N
Description type => String, nullable => false
add table BlogPost:
Title type => N
Slug type => N
BlogID references => Blog
AuthorID references => Author
add table BlogPostTagJunction primary-key => false:
BlogPostID references => BlogPost
TagID references => Tag
version 2:
add table BlogPostComment:
BlogPostID references => BlogPost
AuthorEmailAddress type => N
Content type => String, nullable => false
version 3:
add table Media:
TypeID type => Int32
Name type => N
MimeType type => N
Length type => Int32
BlogPostID nullable => true, references => BlogPost
BlogPostCommentID nullable => true, references => BlogPostComment
add table User:
Login type => String, length => 200, nullable => false
Password type => Binary, length => 64, nullable => false
index IX_Login columns => [ID, [Login, desc]], unique => true
version 4:
add table Forum:
Name type => String, length => 200, nullable => false
add column ModeratorUserID nullable => false, references => User
version 5:
remove index IX_Login table => User
version 6:
add index IX_Login table => User, columns => [ID, [Login, desc]], unique => true
version 7:
BlogAuthorJunction primary-key => false:
BlogID references => Blog
AuthorID references => Author
execute native-sql upgrade-resource => InsertSeedData, downgrade-resource => DeleteSeedData
私が認識しその他の移動図書館がこんにちはではペットプロジェクト!
ここでの問いは何がれていくと期待しているデータベースからの移行ツールキットが一般的に何ができるかということ、特に子犬には構文的に?
解決
かでなければいけないのでfarilyりやすく、全体の構造に見えます。
最大の特長をしているところを探しにこのようになっております。
- 力の変化取引にロールバックはあります。(データの整合性その他)
- 能力の実際に発生するSQLスクリプトする必要が生じた場合には
- 自動調整不具合が発生した際には最新バージョン
私はその他の要求事項に関する移動のキー指標にどのようにも見えてきております。私にとっては、管理の実際の実行には、迅速、固体backoutプラン!
他のヒント
私はこのような構文です。おサンプルで変動に関する構造です。その一方で、データ操作?
で非常に多くが移行していますデータの修正(例えば追加辞書のデータ。
私は、各リビジョンがデータベースに適用されていることを検証する機能を見てみたいと思います。例えば、バージョン3は、テーブル「メディア」を追加するためにそう言います。それ以来、バージョン4&5は、データベースに追加されましたが、どこかのラインに沿って「ジョニーQエキスパートは、」「メディア」テーブルを削除しました。今、「メディア」テーブルを(もはや存在しないもの)に変更する必要がバージョン6が来る - 検証機能は、次のバージョンができるように、データベース内に存在する1 5スルーのバージョンで行われたすべての変更の集大成を保証する役に立つかもしれません正しく適用。