为新数据库创建一个具有全表结构的新迁移

本文关键字:结构 新迁移 迁移 一个 创建 数据库 | 更新日期: 2023-09-27 18:12:46

我有一个项目,我正在工作。虽然我一直在编码它,我已经创建了本地SQL生活在我的机器上的数据库。现在,我需要将其投入生产,但是我无法让迁移创建任何非空白的内容。

这是我的旧连接字符串:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)'v11.0;Initial Catalog=helpdesk;Integrated Security=True" providerName="System.Data.SqlClient" />

我把它改成了:

<add name="DefaultConnection" connectionString="Server=SQL50;Database=HelpDesk;Trusted_Connection=true;" providerName="System.Data.SqlClient" />

我已经尝试过从这个线程(重置实体框架迁移):

  1. 删除项目中的迁移文件夹
  2. 删除数据库中的__MigrationHistory表(可能在系统表下)-但是这个没有意义,因为这是一个新数据库,因此没有迁移。

每当我尝试创建一个新的迁移时,我得到的结果是:

public partial class Initial : DbMigration
{
    public override void Up()
    {
    }
    public override void Down()
    {
    }
}

我找到了Steve Greene建议的关于初始化器的链接如下(http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm)

,它建议使用这行代码:

Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());

在main方法中。但是,我没有main方法或任何类似的方法。

为新数据库创建一个具有全表结构的新迁移

如果我想从头开始,我通常会这样做。

  • 删除本地DB。-你可以做备份等

  • 从项目中删除迁移文件夹。(签入源代码

  • 为我的项目运行Enable-Migrations命令。(这应该加上迁移文件夹)。

  • 运行Add-Migration Initial。(这应该

  • 运行Update-Database命令(或运行使用DBContext)。