如何清除代码优先迁移中的历史记录
本文关键字:迁移 记录 历史 代码 何清除 清除 | 更新日期: 2023-09-27 18:36:57
我使用代码优先迁移,自动模式。我只为一个需要直接 SQL 代码的迁移创建了迁移文件夹,但自动迁移已启用 = true;
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
很多时候,我删除数据库以重新创建它。在调试器中看到自动更新SQL代码,我意识到迁移系统具有我的更改历史记录,事件我删除了源中的任何跟踪。
例如,我将 MyTable1 表名称更改为 MyTable2。然后我完全删除数据库。当我执行"Update-Database -Script"时,我可以看到迁移仍然创建"MyTable1",然后重命名为"MyTable2"。
我完全糊涂了。"MyTable1"在我的代码中不存在。它不在"迁移"文件夹中,因为我使用自动迁移。它不在数据库的历史记录表中,因为我删除了它。我删除了 bin 和 obj 文件夹。那么,我的更改历史记录存储在哪里?
谜团解开了。我的迁移文件绑定了一个 RESX 文件。
这个文件似乎将数据库的先前状态存储在"data"元素中。它是编纂的,因此,我无法在我的文件中找到 MyTable1 文本。
<data name="Target" xml:space="preserve">
<value>H4sIAAAAAAAEAO1dW28cu5F+X2D/w0BPSXCikez12cSQE+jI0okSyxYs+WSRF6M1Q0kN93RPunt8LCz2l+3D/qT9C8u+81LFW7Mv4xUOcGANySJZLBaLxaqv//e//+fkz9820eIrSbMwid8cHB8eHSxIvErWYfzw5mCX3//+Dwd//tO//svJ+XrzbfFLU+9lUY+2jLM3B495vn29XGarR7IJssNNuEqTLLnPD1fJZhmsk+WLo6M/Lo+Pl4SSOKC0FouTj7s4