EF 5 - 模型第一次数据库迁移:发布到远程生产服务器后更改模型?

ca9*_*3d9 1 asp.net asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5

我正在开发MVC 5,EF 5.0代码.我使用文件共享文件夹发布项目.

当模型更改时,我可以使用数据库迁移来更新开发的localDb.但是,在将项目发布到远程服务器之后,它显示了使用完整SQL数据库服务器的生产Web服务器上所需更改的模型和迁移所需的错误.

我知道我可以删除生产服务器上的数据库并让它重新创建数据库.但是,表中已有用户输入的数据.

有没有办法在不重新创建数据库的情况下应用模型/数据库更改?

Mic*_*erg 5

是的,有办法.实际上有几个.

  • 您可以生成可应用于生产数据库的SQL脚本.使用-Script标志在程序包管理器控制台中运行Update-Database,如下所示:

    Update-Database -Script -SourceMigration:InitialMigration -TargetMigration:LatestMigration

    或者使用Red Gate SQL Compare之类的工具生成脚本.

  • 在应用程序启动时,您可以通过注册MigrateDatabaseToLatestVersion数据库初始化程序自动升级数据库:

    Database.SetInitializer(new MigrateDatabaseToLatestVersion());

您可以在文章MSDN - Code First Migrations中阅读有关这两种方法的更多信息.