代码优先迁移 - 文件名

时间:2018-01-29 18:43:23

标签: ef-migrations

我们首先使用EF代码迁移,但是创建的文件名存在问题。我们注意到,当脚手架更改并创建新迁移时,它会将日期和时间附加到迁移名称的开头。当必须添加补丁迁移(在发布中)然后将其合并到我们的dev分支中时,这会导致我们的迁移出现故障。 IE补丁将在dev分支中的新迁移之后由于文件名中的日期,但我们需要它们出现并按特定顺序运行。

有没有办法关闭附加到迁移文件名开头的日期,并让它只使用迁移的实际名称?

我已尝试在设计器中重命名文件和对名称的引用,但这不起作用,因为它会提示我再次重新构建更改。

有人有任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

摆脱这种命名的一种方法是以某种方式自动添加您自己的命名。我曾经使用命令提示符文件 (.cmd) 自动创建名称(包括日期和时间)。这样做我只需要双击 .cmd 文件,就会执行使用我自己的自动文件名的迁移。 这是我的 .cmd 文件内容(例如 add_migrations_Identity.cmd):

For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c_%%a_%%b)
For /f "tokens=1-2 delims=/:" %%a in ("%TIME: =0%") do (set mytime=%%a%%b)
dotnet ef --startup-project MyProject migrations add Identity_V%mydate%_%mytime% -o Migrations/Identity -c IdentityContext
pause

这里是我的更新 .cmd 文件(例如 update_db_Identity.cmd):

dotnet ef --startup-project MyProject database update -c IdentityContext
pause