【问题标题】:MitratorDotNet (Migrator.Net) - Can I use with just bare SQL up/down migration files?MitratorDotNet (Migrator.Net) - 我可以只使用裸 SQL 上/下迁移文件吗?
【发布时间】:2010-03-02 03:14:53
【问题描述】:

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

谢谢

【问题讨论】:

    标签: .net migratordotnet


    【解决方案1】:

    是的。我混合了 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”,并在文件属性窗格中设置为“嵌入式资源”。

    【讨论】:

    • 你对这些脚本做了什么?你能提供一个小例子吗?谢谢
    • 脚本包含 sql 语句,可以为所欲为。 Down 脚本应该撤消 up 脚本所做的任何事情。我使用 SqlPubWiz 和预先存在的数据库创建了我的,如我在此处的回答:stackoverflow.com/questions/2321052/… 然后将生成的脚本分成 things-which-create-things 和 things-which-destroy-things,并将它们用作上下脚本分别。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 2021-06-19
    • 2023-03-20
    • 2015-11-14
    相关资源
    最近更新 更多