我尝试创建一个自动数据库部署系统,其中只有DbConext
被检入源控件,创建了具有相应模式的数据库,然后从中同步环境中的实时数据库。我从
using(var context = new MyDbContext("ScriptDb")
{
context.Database.Create();
Sync("ScriptDb", "LiveDb"); // not implemented yet
}
但是我看到Create()
只运行我创建的迁移脚本。因此,如果我在没有从nuget命令行运行MyDbContext
的情况下对Add-Migration
进行了更改,则它不会显示在ScriptDb
中。
我想知道在没有迁移脚本的情况下是否有办法Create()
。因为我在源代码管理中使用迁移脚本时遇到的问题是,如果有DoSomeUpdate_8738913.cs
这样的脚本包含类似
context.SomeEntites.Insert(new SomeEntity() { SomeValue = SomeEnum.SomeValue })
然后,如果我想从我的代码库中删除SomeEnum.SomeValue
,我不能,因为它需要成为迁移历史记录的一部分。我的问题有意义吗?