如何使Entity Framework覆盖现有数据库而不是创建新数据库?

时间:2012-08-28 03:14:58

标签: sql-server entity-framework appharbor ef-migrations

我尝试在AppHarbor上部署Entity Framework,我希望它能够使用自动迁移进行迁移。

我遇到的问题是在AppHarbor数据库中,系统表中有dbo._MigrationHistory表。在AppHarbor中,我无权从头开始创建数据库(所以我无法让EF创建它),我无法使用备份来恢复它。我认为,我唯一能做的就是使用SQL Server的导入/导出向导,它不会复制系统表。因此,排除在本地创建数据库并将其导出到AppHarbor服务器。

这个问题的解决方案,以及我过去使用EF的许多其他问题,是让EF执行与创建数据库相同的例程,但只删除现有数据库上的所有内容并从那里开始。 NHibernate就是这样做的。我可以让EF做吗?

AppHarbor建议的DontDropDbJustCreateTablesIfModelChanged IDatabaseInitializer并不是那么不幸。

1 个答案:

答案 0 :(得分:2)

您可以创建一个custom SQL generator,它不会将MigrationHistory用作系统表。