Consolidating EF migrations into new InitialCreate

后端 未结 4 1722
轮回少年
轮回少年 2021-02-01 01:18

I have been using EF migrations for some time now and have more than 100 migration files in my project. I would like to consolidate these into a single migration before moving f

4条回答
  •  情书的邮戳
    2021-02-01 02:02

    Consider reading this nice article from Rick Strahl : https://weblog.west-wind.com/posts/2016/jan/13/resetting-entity-framework-migrations-to-a-clean-slate

    Basically the solution is not trivial and needs more than just reseting all the migrations into one because you have two scenarios that needs to fit in ONE migration class:

    • Create a new database => the migration class should contain every table creation
    • My database is already up to date => I need an empty migration class

    Solution: The idea of this process is basically this: The database and the EF schema are up to date and just the way you want it, so we are going to remove the existing migrations and create a new initial migration.

    In summary, the steps to do this are:

    • Remove the _MigrationHistory table from the Database
    • Remove the individual migration files in your project's Migrations folder
    • Enable-Migrations in Package Manager Console
    • Add-migration Initial in PMC
    • Comment out the code inside of the Up method in the Initial Migration
    • Update-database in PMC (does nothing but creates Migration Entry) Remove comments in the Initial method You've now essentially reset the schema to the latest version.
    • once the commented out migration has been executed on the desired database, uncomment the migration code

提交回复
热议问题