有没有办法在运行手动迁移时忽略错误?
我们有不同状态的客户端数据库,我需要将它们全部更新到最新版本。
我要求忽略错误的原因是因为我只想像这样编码我的迁移
public override void Up()
{
AddColumn("ClientUser", "LastSyncTime", c => c.Guid());
AddColumn("ClientUser", "FileTransferToken", c => c.Guid());
AddColumn("ClientUser", "DateFileTransferTokenIssued", c => c.DateTime());
}
但很自然地,它会在列已经存在的情况下引发异常。
答案 0 :(得分:2)
没有。它不是EF迁移的用例。迁移将数据库从一个定义的状态驱动到另一个定义的状如果您有不同状态的数据库,则需要进行多次迁移,每次迁移仅涵盖部分转换。
如果要开始在具有多个数据库的现有项目中使用迁移,则应首先将所有数据库移至相同的状态而不进行迁移,并开始将其用作初始状态,之后所有更改将仅通过迁移进行处理。否则你会遇到很多问题。
答案 1 :(得分:0)
这不能回答您的具体问题,但它可能是您问题的答案。
使用VS 2010中的数据库项目创建目标数据库的架构。
您可以使用此“黄金标准”架构来比较处于不同状态的其他数据库,并生成增量脚本以将其从当前架构转移到目标架构。
在数据库中处于已知状态后,请切换到架构的数据库迁移。
基思