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="BlogDatabase" connectionString="Data Source=.;Initial Catalog=BlogDatabase;UID=sa;PWD=123456;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

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

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

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

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

Update-Database -Script -SourceMigration 201610030621164_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 文件 中不包含201610030621164_ModifyScoreReprot文件。

而dbo.__MigrationHistory 表中MigrationID字段中却有201610030621164_ModifyScoreReprot的记录,说明其他跟你一起合作开发的同学没有提交项目中的201610030621164_ModifyScoreReprot文件或者是该文件以及被手动删除啦。所以最好将Migrations 文件夹下的所有生成的文件都一次提交上去到svn才是王道

时间: 2024-12-17 05:04:39

EntityFramework数据库迁移的相关文章

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

解决EntityFramework数据库无法自动迁移解决方法 如果在迁移数据库执行完一下三个命令没有成功的话请按下面的步骤去进行数据库迁移 1:Enable-Migrations 2:Add-Migration Student. 3:update-database 一般执行以上3个命令都会成功 第一步:删除迁移命令生成的文件夹:Migrations文件夹,重新生成 第二步:执行迁移命令: Add-Migration ,例如:有一个Student的实体类(Model) 为了命名规范,我们一般执行迁

EntityFramework CodeFirst 数据库迁移

参考: https://msdn.microsoft.com/en-us/data/jj591621 http://www.itnose.net/detail/6105449.html http://www.tuicool.com/articles/Q7JRR32 打开:工具 --> NuGet包管理器 --> 程序包管理控制台,按下面的步骤使用相应的命令 //使能迁移功能 命令1. Enable-Migrations -ContextTypeName WebTest.Models.TestD

Entity framework 意外删除了表,如何在不影响其它表的情况下恢复回来(数据库迁移原理)

1. 关于EntityFramework数据迁移原理 查询数据库的表"__MigrationHistory",遍历Migrations文件夹下的所有文件,如果文件不在__MigrationHistory表内,那么就执行迁移. 有了上面的原理之后,我们来看一下如果我们不小心手动删除了一个表,如何在不影响其它表的情况下来恢复你删除的表: 方法一: 关于Model 以及 DBContext如下: 1 public class Blog 2 { 3 public int BlogId { ge

EF Code First Migrations数据库迁移

http://www.cnblogs.com/libingql/p/3330880.html 1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramework. PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalCo

【EF】EF Code First Migrations数据库迁移

1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramework. PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalContext.cs的代码如下: using System; using System.Colle

EF6与MVC5系列(5):使用数据库迁移( Code First Migrations)和发布

本节教程包含以下内容: 启用数据库迁移(Code First Migrations):迁移特性可以改变数据模型,并且不需要删除重建数据库就可以修改数据库架构. 部署在Azure中:这步骤是可选的,可以不发布在Azure中继续学习本教程后面的内容. ps:本文中只翻译Code First Migrations相关内容,有关如何在Azure中发布,可以查看原文:https://www.asp.net/mvc/overview/getting-started/getting-started-with-

EF6 学习笔记(五):数据库迁移及部署

EF6学习笔记总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 原文地址:Code First Migrations and Deployment 原文主要讲两部分:开发环境下数据库迁移到其他数据库服务器:以及在Azure上如何部署应用: 原文前面讲一堆内容,主要就是说数据库在开发过程中,如果数据模型经常需要调整,那么数据库每次都删除重建有点不太现实:尤其是对于已部署的正式环境,需要的仅仅是数据库升级,而不可能直接Drop掉,再重新Create. 所以,需要启用EF的数据

EF(EntityFramework) Migrations 迁移

1.开启程序包管理器控制台 2.安装EntityFramework PM> Install-Package EntityFramework   3.启用迁移 PM> Enable-Migrations –EnableAutomaticMigrations 遇到的问题: Enable-Migrations : 無法辨識 'Enable-Migrations' 詞彙是否為 Cmdlet.函數.指令檔或可執行程式的名稱.請檢查名稱拼字是否正確,如果包含路徑的話,請確認路徑是否正確,然後再試一次.  

ABP Migration(数据库迁移)

今天准备说说EntityFramework 6.0+,它与我之前所学的4.0有所区别,自从4.1发布以来,code first 被许多人所钟爱,Dbcontext API也由此时而生.早在学校的时候就听老师说过Db first,Model first 和 Code first ,没怎么去注意,最近我直接从Db first 跳到了 Code first,去了解了下,个人觉得Model first 和 Code first 没多大区别,英文好的人看以看看http://stackoverflow.co