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

Posted

技术标签:

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

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

谢谢

【问题讨论】:

【参考方案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 和预先存在的数据库创建了我的,如我在此处的回答:***.com/questions/2321052/… 然后将生成的脚本分成 things-which-create-things 和 things-which-destroy-things,并将它们用作上下脚本分别。

以上是关于MitratorDotNet (Migrator.Net) - 我可以只使用裸 SQL 上/下迁移文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

python migrator.sh

Highly featured Office 365 to Office 365 Migrator

ABP项目创建

ScyllaDB - DynamoDB 迁移

使用rake获取当前db模式

spring boot 知识点1