您好我正在开始一个新项目,我一直在努力获得一个好的数据库初始化算法。
我想要的是每次应用初始化时删除/创建。然后运行迁移。
所以我的理想工作流程是(当应用程序启动时): 1.删除数据库(如果存在) 2.从模型类创建数据库 3.初始化Web安全性(ASP.NET角色提供程序) 4.运行迁移脚本
3和4可以互换。
我遇到的问题是迁移不会运行,或者drop database(如果存在)不会运行。 (并且有一些技巧涉及Web安全性的初始化,因为它必须在创建数据库之后运行,因此它可以在步骤#2中创建的UserProfile表上添加外键约束。
我认为我遇到困难的一个可能原因是因为迁移从未打算与Drop / Create策略一起运行。我需要迁移为一个全新项目运行的原因是我想在列上指定索引。到目前为止,我知道如何执行此操作的唯一方法是在迁移脚本中:
public override void Up()
{
CreateIndex("dbo.UserProfile", "UserName", true);
}