【问题标题】:How to clear the history in Code First migrations?如何清除 Code First 迁移中的历史记录?
【发布时间】:2015-03-08 14:22:06
【问题描述】:

我使用 Code First 迁移,自动模式。我为需要直接 SQL 代码的迁移创建了 Migrations 文件夹,但 AutomaticMigrationsEnabled = true;

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = true;
    }

很多时候,我删除数据库来重新创建它。在调试器中看到自动更新 SQL 代码,我意识到迁移系统有我的更改历史记录,事件我删除了源中的任何线索。

例如,我将 MyTable1 表名更改为 MyTable2。然后我完全删除数据库。当我执行“Update-Database -Script”时,我可以看到 Migrations 仍然创建“MyTable1”,然后它重命名为“MyTable2”。

我完全糊涂了。我的代码中不存在“MyTable1”。它不在 Migrations 文件夹中,因为我使用自动迁移。它不在我的数据库的历史表中,因为我删除了它。我删除了 bin 和 obj 文件夹。那么,我的更改历史存储在哪里?

【问题讨论】:

  • 手动添加迁移信息,清除Up和down方法并运行更新数据库

标签: c# entity-framework ef-code-first entity-framework-migrations


【解决方案1】:

谜团解开了。我的迁移文件绑定了一个 RESX 文件。

此文件似乎将数据库的先前状态存储在“数据”元素中。它已被编码,因此,我无法在我的文件中找到 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多