如何使用 asp.net Core 更改迁移的输出文件夹?

问题描述 投票:0回答:4

有谁知道如何更改以下命令的输出目录?

dotnet ef  migrations add Initial --context EsportshubApi.Models.ApplicationDbContext

我尝试添加选项:

--content-root-path 'Migrations/Identity' 

但这没有做任何事情。还有一个

--data-dir
选项和其他带有目录的选项。但它们都不是迁移的输出。

我的问题是我有 2 个 DbContext,所以我希望将它们的迁移分开。

asp.net database entity-framework asp.net-core command-line-interface
4个回答
141
投票
dotnet ef migrations add Initial --context EsportshubApi.Models.ApplicationDbContext -o YourFolderPath

dotnet ef migrations add

添加新的迁移。

参数:

争论 说明
<NAME>
迁移的名称。

选项:

选项 说明
--output-dir <PATH>
-o
用于输出文件的目录。路径是相对于目标项目目录的。默认为“迁移”。
--namespace <NAMESPACE>
-n
用于生成类的命名空间。默认从输出目录生成。在 EF Core 5.0 中添加。

这里还有常用选项你可以用这个命令。

来源


75
投票

对于

Package Manager Console
运行这个命令:

PM> Add-Migration 001 -OutputDir "Data/Migrations"

我的结构是:

.AspCoreProject
  -Data
    -Migrations
       20190721162938_001.cs
       MainDbContextModelSnapshot.cs

更新:

删除上次迁移使用:

PM> Remove-Migration

注意:如果迁移已经应用到数据库,那么你会得到这个错误:

迁移“20190721162938_001”已经应用到数据库。还原它并重试。如果迁移已应用于其他数据库,请考虑使用新迁移恢复其更改。

然后运行:

PM> Remove-Migration -Force

如果您的迁移不是最后一次迁移。首先,通过

Update-Database
回滚到您需要的迁移,然后在该迁移之后删除所有迁移类。

PM> Update-Database -Migration 001

这将在

001

之后恢复所有迁移

12
投票

在 EF Core 5.0 中,您可以自由移动迁移文件并手动更改其命名空间。新迁移被创建为上一个迁移的兄弟。或者,您可以在生成时指定目录,如下所示:

.Net 核心 CLI

dotnet ef migrations add InitialCreate --output-dir Your/Directory

包管理器控制台

Add-Migration InitialCreate -OutputDir Your\Directory

EF Core 5.0 文档


4
投票

您只需要在命令中使用 -o 或 --output 选项,

为此,您需要浏览到您的根项目文件夹,例如:C:\project\SampleAPi\ 并使用这个命令

dotnet ef  migrations add DbInitial --context SampleAPi.Infrastructure.DbContext -o Infrastructure/Migrations

然后

dotnet ef database update
© www.soinside.com 2019 - 2024. All rights reserved.