我正在进行的项目需要通过我们拥有的安装程序创建和更新数据库。
该项目是一个 MVC 网站,因此当前数据库配置为在 Application_Start 被点击时创建/更新。
初始化器设置如下:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext,Migrations.Configuration>());
在配置中:
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
理想情况下,我想简单地设置初始化程序并直接从 C# 自定义操作中运行它。我一直在尝试类似下面的东西,但到目前为止还没有运气。
[CustomAction]
public static ActionResult DBSetup(Session session)
{
try
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
using (var db = new MyContext())
{
db.Database.Initialize(true);
}
}
catch (Exception err)
{
session.Log("Error setting up DB: " + err.InnerException);
session.Log("", err.Message);
return ActionResult.Failure;
}
return ActionResult.Success;
}
捕获的异常似乎不包含任何信息,因此调试很困难..
只是想知道是否有其他人尝试过这个,或者尝试过类似的东西并得到了一些工作。