2017-09-26 165 views
0

我使用实体框架代码优先迁移。在我的项目中已经有很多迁移,但不是最初的迁移。我有一个开发迁移项的开发数据库。 我的问题是,有没有办法重新创建初始迁移CSV文件,例如创建另一个开发数据库。重新创建初始实体框架迁移

+0

你是说你无意中删除了一个移植或其他东西?应该不重要。如果您将连接字符串指向新的数据库,则应该创建并匹配您的当前模型。另一种选择,如果你只有一个DEV数据库,你可以[重置迁移](https://weblog.west-wind.com/posts/2016/jan/13/resetting-entity-framework-migrations-to-a -clean-板岩)。 –

+0

不幸的是它已经在生产。我想通过更改连接字符串来设置新的testenvironment。数据库无法创建,因为一个(或多个)C#迁移文件丢失。所以update-database命令想要改变永远不会创建的表的列。 – AlexwTT

回答

1

您可以强制迁移从头开始创建数据库:

Update-Database -SourceMigration $InitialDatabase 

这将导致创建的所有数据库对象和要应用的迁移。见here。另一种方法是使用initializers。您可以暂时将其更改为使用CreateDatabaseIfNotExists。我们所做的是通过web.config设置测试DEV环境,并在DEV中使用该初始化程序,否则在PROD中使用MigrateDatabaseToLatestVersionNullDatabaseInitializer