3
我可以使用migrator.net裸迁移框架,只需要一组SQL文件来执行升级/降级?即只是使用框架来检查数据库版本和运行哪些脚本等?MitratorDotNet(Migrator.Net) - 我可以只使用裸露的SQL上/下迁移文件吗?
谢谢
我可以使用migrator.net裸迁移框架,只需要一组SQL文件来执行升级/降级?即只是使用框架来检查数据库版本和运行哪些脚本等?MitratorDotNet(Migrator.Net) - 我可以只使用裸露的SQL上/下迁移文件吗?
谢谢
是的。我有一个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);
}
}
}
在那里我有两个文件“createbaredb.sql”和“dropbaredb.sql”在一个目录(SqlScripts),并设置为“嵌入的资源”在文件属性窗格。
你在这些脚本上做了什么?你能提供一个小例子吗?谢谢 – emzero 2010-04-27 18:04:09
脚本包含sql语句,可以做你喜欢的任何事情。 Down脚本应该撤消上行脚本的任何操作。我使用SqlPubWiz和一个预先存在的数据库创建了我的数据库,如我在这里的答案:http://stackoverflow.com/questions/52/get-script-of-sql-server-data/2501702#2501702,然后将生成的脚本分离事物 - 创造事物和事物 - 破坏事物,并分别用它们作为上下脚本。 – Greg 2010-04-28 09:13:14