迁移成功但未显示在数据库中

Posted

技术标签:

【中文标题】迁移成功但未显示在数据库中【英文标题】:Migration successful but not showing up in the database 【发布时间】:2021-11-12 19:09:23 【问题描述】:

我正在尝试为我的数据库进行迁移以添加一列。我设置了迁移,一切看起来都很好。我运行了命令,它抓取了正确的迁移并将其运行到数据库中,但它没有显示在数据库中。

我的迁移:

 using System;
 using Microsoft.EntityFrameworkCore.Migrations;

namespace Mudman.Data.Migrations

public partial class AttachedFileFileCategory : Migration

    protected override void Up(MigrationBuilder migrationBuilder)
    

        migrationBuilder.AddColumn<string>(
            name: "FileCategory",
            table: "AttachedFile",
            type: "nvarchar(max)",
            nullable: true);
    

    protected override void Down(MigrationBuilder migrationBuilder)
    
        migrationBuilder.DropColumn(
            name: "FileCategory",
            table: "AttachedFile");
    

我的命令终端:

数据库:

【问题讨论】:

您确定这是正确的数据库吗?另外,您是否刷新了用于连接数据库的应用程序?尝试关闭并重新打开它。 @DavidG 你说得对,它实际上进入了我们的阶段数据库,而不是我们的开发......将来有没有办法在添加列时指定你想要的数据库? 它使用与上下文相同的数据库。如果它进入您的暂存数据库,那是因为那是通过运行具有环境配置的应用程序连接到的数据库 - 参见例如docs.microsoft.com/en-us/aspnet/core/fundamentals/… 【参考方案1】:

我在 cmets 中读到您的“问题”是环境。 有很多方法可以满足您的需求:

    您用于迁移的命令是Entity Framework Core tools 的一部分。 除其他事项外,文档提到您可以指定以下选项:

--connection &lt;CONNECTION&gt; 到数据库的连接字符串。默认为 AddDbContext 或 OnConfiguring 中指定的那个。在 EF Core 5.0 中添加。

示例:dotnet ef database update your_migration --connection your_connection_string

    ConfigureServices 中,您可以获取环境并使用您想要的任何连接字符串有条件地注册dbContext。 How to get the Development/Staging/production Hosting Environment in ConfigureServices

【讨论】:

以上是关于迁移成功但未显示在数据库中的主要内容,如果未能解决你的问题,请参考以下文章

UITextfield 值已成功更新,但未显示在表格中

VUE:获取数据但未使用 vueD3tree 显示

嗨,我通过 paypal omnipay 发送卡详细信息。付款显示成功但未出现在贝宝中

应用请求成功,但未显示通知

jenkins显示发送邮件成功,但未收到邮件

数据流任务成功执行但未向 Excel 文件写入任何行