博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决EntityFramework数据库无法自动迁移解决方法
阅读量:4681 次
发布时间:2019-06-09

本文共 1952 字,大约阅读时间需要 6 分钟。

如果在迁移数据库执行完一下三个命令没有成功的话请按下面的步骤去进行数据库迁移

1:Enable-Migrations

2:Add-Migration Student.

3:update-database

一般执行以上3个命令都会成功

第一步:删除迁移命令生成的文件夹:Migrations文件夹,重新生成

第二步:执行迁移命令: Add-Migration ,例如:有一个Student的实体类(Model) 为了命名规范,我们一般执行迁移命令如下

Add-Migration Student.

第三步:执行 Enable-Migrations -Force命令

第四步:删除Migrations文件夹下面的带Create的文件

第五步:执行Enable-Migrations命令

第六步:与第二步执行命令相同,Add-Migration Student

第七步:提交到数据库执行命令:update-database

第八步:查看执行添加表字段的脚步命令:update-database -Verbose

第九步:重新编译解决方案,因为我们执行的命令是修改了debug/relealse 目录下面对应的数据库,所以如果项目中的数据库文件设置为

资源输出文件,并且设置为总是覆盖的话,则数据库即使执行了增加字段命令,但是还是会被重新覆盖,所以执行完命令成功后复制debug/relealse

目录下面的数据库文件覆盖到解决方案中的数据库文件,将其覆盖或者设置,并且设置为总是不覆盖的

 

使用自动迁移时注意启动项目,最好将数据库连接的字符串连接配置到对应的Models对应的web.config 或者App.config中。

如model在项目  “PQCC.Models”  则必须在PQCC.Models 项目中的web.config 或者App.config中配置:

<connectionStrings>

<add name="DB_PQCC" connectionString="Data Source=。;Initial Catalog=数据库名字;User ID=用户名;Password=密码" providerName="System.Data.SqlClient" />
</connectionStrings>

 

后期发布到正式站点后需要获取自动生成的语句sql脚本。并且更新正式站点数据库

语法如下: Update-Database -Script -SourceMigration 201411240324186_ModifyScoreReprot

201411240324186_ModifyScoreReprot 表示当前版本的sql 脚本语句。对应于dbo.__MigrationHistory 表中的MigrationID字段

如果后期发布到正式站点后需要获取自动生成的语句sql脚本。并且更新正式站点数据库执行 以下语句是

Update-Database -Script -SourceMigration 201411240324186_ModifyScoreReprot  报以下错误时:

Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration

是由于您当前项目Migrations 文件 中不包含201411240324186_ModifyScoreReprot文件。

 

而dbo.__MigrationHistory 表中MigrationID字段中却有201411240324186_ModifyScoreReprot的记录,说明其他跟你一起合作开发的同学没有提交项目中的201411240324186_ModifyScoreReprot文件

或者是该文件以及被手动删除啦。所以最好将Migrations 文件夹下的所有生成的文件都一次提交上去到svn才是王道

 

         

 

转载于:https://www.cnblogs.com/BeyondWang/archive/2012/11/02/2747924.html

你可能感兴趣的文章
编程之美 2.12 快速寻找满足条件的两个数 解法三证明 (算法导论 第二版 2.3-7 在n个元素的集合S中找到两个和为x的元素)...
查看>>
open_basedir restriction in effect,解决php引入文件权限问题
查看>>
微信小程序获取用户信息解密AES并且注意如何获取unionid
查看>>
JavaScript设计模式----1
查看>>
Qt实现半透明遮罩效果
查看>>
erlang调优方法
查看>>
Mysql linux -N命令
查看>>
daily scrum 12.5
查看>>
linux-ftp install
查看>>
NetXray
查看>>
局域网基本工作原理
查看>>
让历史告诉我们未来
查看>>
UVa540 Team Queue
查看>>
android 练习之路 (八)
查看>>
tp5 中 model 的聚合查询
查看>>
android wear开发之:增加可穿戴设备功能到通知中 - Adding Wearable Features to Notifications...
查看>>
压缩文件函数库(转载)
查看>>
【转】ubuntu12.04没有/var/log/messages解决
查看>>
Oracle EBS 初始化用户密码
查看>>
SYS_CONTEXT 详细用法
查看>>