使用ef code first模式,在部署后服务器端把数据库同步到最新版本的方法

时间:2021-08-27 14:29:48

共有两种方法:

1.使用migrate.exe

具体使用方法请参考 msdn migrate使用方法,这里只做介绍

  • 复制migrate.exe

    在使用 NuGet 安装实体框架时,migrate.exe 位于下载包的 tools 文件夹中。在 <项目文件夹>\packages\EntityFramework.<版本>\tools 中,有了 migrate.exe 之后,需要将其复制到发布后的bin文件夹下

  • 使用 Migrate.exe

    打开命令行窗口,定位到bin文件夹下(此时该文件加下已经有了migrate.exe),执行命令

      //MyMvcApplication.dll为程序集dll
    Migrate.exe MyMvcApplication.dll /startupConfigurationFile=”..\web.config”

2.在程序启动入口加入

 Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Migrations.Configuration>());

ApplicationDbContext为数据库上下文,Migrations.Configuration为迁移配置文件,这样每次程序里实体模型发生变化并部署后,打开应用,打开使用了该变化的网页就能自动更新数据库到最新版本