MitratorDotNet(Migrator.Net) - 我可以只使用裸SQL上/下迁移文件吗?

时间:2010-03-02 03:14:54

标签: .net migratordotnet

我可以使用migrator.net裸迁移框架,只需要一组SQL文件来进行升级/降级吗?即只是使用框架来检查数据库版本和运行哪些脚本等?

感谢

1 个答案:

答案 0 :(得分: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',并在文件属性窗格中设置为'Embedded Resource'。