1

我首先在 MVC 5、EF 5.0 代码中进行开发。我使用文件共享文件夹发布项目。

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

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

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

4

2 回答 2

5

是的,有办法。其实有好几个。

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

    更新数据库-脚本-SourceMigration:InitialMigration -TargetMigration:LatestMigration

    或者使用像 Red Gate SQL Compare 这样的工具来生成脚本。

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

    Database.SetInitializer(new MigrateDatabaseToLatestVersion());

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

于 2013-02-25T08:00:17.967 回答
0

我从来没有选择删除生产中的数据库。EF code first 不是为了那个目的,它只是为了开发,

有几个选项,如果您使用 Visual Studio Ultimate,SQL 菜单下有一个架构比较工具。或者,您可以使用 Red Gate SQL 比较工具。

于 2013-02-24T22:31:34.277 回答