在项目开发的过程中,常会遇到项目发布后还变更数据库的情况。这时如何方便地进行数据库迁移呢 ?
下面直接列出操作的步骤:
1. 发布修改后的应用:
将最新版本的应用更新到目标机器中。更新的文件当然不包括数据库。
这时运行应用,将显示错误信息:
支持“AbpZeroTemplateDbContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库
表示我们的数据库需要更新。
2. 拷贝迁移工具:
将我们的项目文件夹下的 migrate.exe 拷贝到目标机器中。
源文件: <项目文件夹>\packages\EntityFramework.<版本>\tools\migrate.exe,如 C:\project-Epmp\packages\EntityFramework.6.1.3\tools\migrate.exe
目标目录: <发布文件夹>\bin,如 D:\project-Epmp\publish\bin
目标机器 bin 目录下,应该有文件 EntityFramework.dll 等
3.执行迁移命令:
在命令提示符下,执行下面的命令(数据库连接以SqlServer为例)
migrate.exe xxx.yyy.EntityFramework.dll /connectionString="Server=localhost;Database=数据库名;User=用户名;Password=用户密码;" /connectionProviderName="System.Data.SqlClient"
执行顺利的话,会显示“正在应用显示迁移 ...” 等信息。
好,到这里就迁移结束了。
在打开更新后的应用,应该可以正常运行了。