質問

現在のペットプロジェクトでは言語-独立したデータベースの移動図書館(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りやすく、全体の構造に見えます。

最大の特長をしているところを探しにこのようになっております。

  1. 力の変化取引にロールバックはあります。(データの整合性その他)
  2. 能力の実際に発生するSQLスクリプトする必要が生じた場合には
  3. 自動調整不具合が発生した際には最新バージョン

私はその他の要求事項に関する移動のキー指標にどのようにも見えてきております。私にとっては、管理の実際の実行には、迅速、固体backoutプラン!

他のヒント

私はこのような構文です。おサンプルで変動に関する構造です。その一方で、データ操作?

で非常に多くが移行していますデータの修正(例えば追加辞書のデータ。

私は、各リビジョンがデータベースに適用されていることを検証する機能を見てみたいと思います。例えば、バージョン3は、テーブル「メディア」を追加するためにそう言います。それ以来、バージョン4&5は、データベースに追加されましたが、どこかのラインに沿って「ジョニーQエキスパートは、」「メディア」テーブルを削除しました。今、「メディア」テーブルを(もはや存在しないもの)に変更する必要がバージョン6が来る - 検証機能は、次のバージョンができるように、データベース内に存在する1 5スルーのバージョンで行われたすべての変更の集大成を保証する役に立つかもしれません正しく適用。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top