EF Core - 在没有源的情况下运行迁移 - 相当于EF6的migrate.exe

krl*_*rlm 8 .net entity-framework .net-core

是否可以从包含迁移和dbcontext的DLL运行ef迁移?我想dotnet ef database update在不需要project.json和源代码的情况下运行我的构建工件.

换句话说,我正在寻找EF6 的migrate.exe https://msdn.microsoft.com/en-us/data/jj618307.aspx

krl*_*rlm 12

我的团队同事找到了一种方法,允许您在没有源的情况下对构建工件进行迁移.以下命令替换migrate.exe我们:

dotnet exec 
  --runtimeconfig ./HOST.runtimeconfig.json 
  --depsfile ./HOST.deps.json Microsoft.EntityFrameworkCore.Design.dll
  --assembly ./DB_CONTEXT_DLL.dll 
  --startup-assembly ./HOST.dll --data-dir ./ 
  --root-namespace DB_CONTEXT_NAMESPACE 
  --verbose database update --context DB_CONTEXT_CLASS -e development 
Run Code Online (Sandbox Code Playgroud)

2.1.x版本的更新:

dotnet exec 
   --runtimeconfig ./HOST.runtimeconfig.json 
   --depsfile ./HOST.deps.json /PATH/TO/microsoft.entityframeworkcore.tools/.../ef.dll 
   --verbose database update --context DB_CONTEXT_CLASS
   --assembly ./DB_CONTEXT_DLL.dll 
   --startup-assembly ./HOST.dll --data-dir ./
Run Code Online (Sandbox Code Playgroud)


Ric*_*ana 9

似乎不可能dotnet ef database update只用 DLL运行,如果你使用 docker,运行时的实际版本microsoft/dotnet:1.1.0-preview1-runtime没有安装 sdk(使用dotnet ef database update命令)。

在不使用的情况下更新数据库的一种选择dotnet ef database update是在某些默认操作或启动例程中执行以下命令。

_dbContext.Database.Migrate();
Run Code Online (Sandbox Code Playgroud)