3

migrator.net ベア マイグレーション フレームワークを使用して、アップグレード/ダウングレードを行うための SQL ファイルのセットだけを使用できますか? つまり、フレームワークを使用してデータベースのバージョンや実行するスクリプトなどを確認するだけですか?

ありがとう

4

1 に答える 1

2

はい。SQL とコードの移行が混在しています。SQLファイルを使用する私の移行は次のようになります:

using System.Data;
using Migrator.Framework;
using System.IO;
using System.Reflection;

namespace MyDBMigration
{
    [Migration(2)]
    public class CreateStructures_002 : Migration
    {

        public override void Up()
        {
            Assembly asm = Assembly.GetAssembly(typeof(CreateStructures_002));
            Stream s = asm.GetManifestResourceStream("MyDBMigration.SqlScripts.createbaredb.sql");
            StreamReader sr = new StreamReader(s);
            string sql = sr.ReadToEnd();
            Database.ExecuteNonQuery(sql);
        }

        public override void Down()
        {
            Assembly asm = Assembly.GetAssembly(typeof(CreateStructures_002));
            Stream s = asm.GetManifestResourceStream("MyDBMigration.SqlScripts.dropbaredb.sql");
            StreamReader sr = new StreamReader(s);
            string sql = sr.ReadToEnd();
            Database.ExecuteNonQuery(sql);
        }
    }
}

ディレクトリ(SqlScripts)に「createbaredb.sql」と「dropbaredb.sql」の2つのファイルがあり、ファイルプロパティペインで「埋め込みリソース」として設定されています。

于 2010-04-15T09:17:00.613 に答える