Entity framework 生产服务器上的asp核心ef迁移

Entity framework 生产服务器上的asp核心ef迁移,entity-framework,asp.net-core,entity-framework-core,Entity Framework,Asp.net Core,Entity Framework Core,无法在生产服务器上执行迁移。 命令“dotnet ef database update”在我的计算机上运行,但在生产中失败 我尝试的步骤是: 1.在发布之前,在Visual Studio中填写复选框执行代码优先迁移。 2. dotnet ef数据库更新不工作。我安装了.NET SDK,但它没有所需的库 任何建议都会出现。有几个选项: 使用dotnet ef migrations script生成SQL脚本,并在生产数据库上运行 在应用程序启动期间的运行时调用dbContext.Database.

无法在生产服务器上执行迁移。 命令“dotnet ef database update”在我的计算机上运行,但在生产中失败 我尝试的步骤是: 1.在发布之前,在Visual Studio中填写复选框
执行代码优先迁移
。 2. <代码>dotnet ef数据库更新不工作。我安装了.NET SDK,但它没有所需的库


任何建议都会出现。

有几个选项:

  • 使用
    dotnet ef migrations script
    生成SQL脚本,并在生产数据库上运行
  • 在应用程序启动期间的运行时调用
    dbContext.Database.Migrate()
    (但在运行多个应用程序/数据库客户端时要小心)

  • 另外,在Microsoft.EntityFrameworkCore.Tools的下一个版本(1.0.0-preview3)中,我们将提供
    ef.exe
    ,您可以直接指向程序集(而不是
    project.json
    文件)来执行迁移。

    您可以通过运行以下命令生成迁移脚本:

    Script-Migration -From older_migration_name -To newer_migration_name -Context ApplicationDbContext
    
    脚本将具有随机名称,并将位于以下路径中:

    <Your_Project_Drive>:\<Your_Project_Folder>\<Your_Project_Folder.Model>\obj\Debug\netcoreapp3.1\<Some_Random_Name>.sql
    
    :\\\obj\Debug\netcoreapp3.1\.sql
    

    现在只需在生产服务器的目标数据库上运行该脚本。

    两种方法都有效!谢谢你对ef.exe的提示。正在等待预览3:)我应该将迁移生成的脚本放在生产服务器的何处?@bricelam是否为自初始迁移以来的所有更改生成脚本?在生产数据库上运行脚本后,将来如何应用更新的迁移?如何跟踪生产服务器上更新的内容?添加
    --idempotent
    以获取仅应用未应用迁移的脚本。或者,您可以指定to和from参数,以获取一系列迁移时间的脚本,该答案应在@bricelam更新。我们的dotnet 5.0令人惊叹,工作起来非常有魅力