当前位置: 首页 > news >正文

解决EntityFramework数据库无法自动迁移解决方法

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

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

相关文章:

  • Qt学习之路(45): 自定义model之一
  • 编译原理-词法分析器(DFA,C语言描述,可分析C/C++词法)
  • SQL 表操作
  • Qt学习之路(44): QSortFilterProxyModel
  • UIimage图片在程序Documents目录下的存取
  • Qt学习之路(43): QDirModel
  • java “==”和“ equals”以及instanceof的区别
  • Qt学习之路(42): QStringListModel
  • The Clocks
  • 发布app store流程
  • Qt学习之路(41): QTableWidget
  • Qt学习之路(40): QTreeWidget
  • 配置EM遇到的问题
  • Qt学习之路(38): model-view架构
  • MAGENTO EVENT OBSERVER
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • axios 和 cookie 的那些事
  • Fabric架构演变之路
  • Github访问慢解决办法
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java中的hashCode
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • NSTimer学习笔记
  • tweak 支持第三方库
  • TypeScript实现数据结构(一)栈,队列,链表
  • 分布式熔断降级平台aegis
  • 规范化安全开发 KOA 手脚架
  • 回顾 Swift 多平台移植进度 #2
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 解析带emoji和链接的聊天系统消息
  • 突破自己的技术思维
  • 项目实战-Api的解决方案
  • 小程序测试方案初探
  • 小而合理的前端理论:rscss和rsjs
  • 一个SAP顾问在美国的这些年
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • ###项目技术发展史
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (function(){})()的分步解析
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (二)丶RabbitMQ的六大核心
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (一)基于IDEA的JAVA基础1
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CLR基本术语
  • .NET MVC之AOP
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net各种迷惑命名解释
  • ?.的用法
  • @ModelAttribute 注解