EF迁移命令

Posted 吴晓阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF迁移命令相关的知识,希望对你有一定的参考价值。

EF迁移设置的最后一步是在包管理器控制台中输入命令“add-migration InitialMigration -IgnoreChanges”。“InitialMigration”(高亮的黄色)是您想要给当前迁移的名称,“IgnoreChanges”句柄是告诉EF Migrations您想要忽略当前数据库:这意味着您希望EF忽略所有现有表,以便不会为现有表生成脚本。

enable-migrations

update-database

获取迁移的脚本

在运行 Update-Database 的时候,使用参数 -Script 。

-SourceMigration:$InitialDatabase 用来指定起始的版本, -TargetMigration:"AddPostAbstract" 用来指定目标版本。

Update-Database to bring the database up-to-date. This time let’s specify the –Verbose flag so that you can see the SQL that Code First Migrations is running.

https://msdn.microsoft.com/en-us/data/jj591621.aspx#script

1.Add-Migration Initia-IgnoreChanges 生成已有数据库初始化代码

2.update-database -verbose 升级数据库并显示sql语句

3.Update-Database -Script -SourceMigration:"201309201643300_AddCity.cs" -TargetMigration:"201309201708043_ModifyCity.cs"  这个是生成两次迁移的sql语句,TargetMigration省略是到最新

4.simplemembership的数据库没有migration表 所以迁移的时候如果丢失了迁移类会很麻烦,建议手工修改即可。

5.context的静态构造函数中可以设置数据库初始化器(用于调试)

1
2
3
4
5
6
7
8
9
10
static PortalContext()
{
    Database.SetInitializer<PortalContext>(null);
 
 
//DropCreateDatabaseIfModelChanges
//CreateDatabaseIfNotExists
//DropCreateDatabaseAlways
//MigrateDatabaseToLatestVersion
}

6.Get-Migrations 获取已经应用的迁移

7.Enable-Migrations

在Package Manager Console中执行Enable-Migrations启动迁移。

执行get-help Enable-Migrations –detailed 查看Enable-Migrations的详细用法。

-ContextTypeName 指定要使用的Context

-EnableAutomaticMigrations 启动自动迁移

-ProjectName 指定搭建的迁移类添加到的项目

-StartUpProjectName 指定使用的配置文件所在的项目

-ConnectionStringName 指定使用配置文件中连接字符串的名称

-ConnectionString 指定使用的连接字符串

-ConnectionProviderName 指定连接字符串的provider名称

8.Add-Migration

在Package Manager Console中执行Add-Migration搭建挂起的Model变化迁移脚本。

执行get-help Add-Migration –detailed查看Add-Migration的详细用法。

-Name 指定自定义脚本的名称

-Force

-ProjectName

-StartUpProjectName

-ConfigurationTypeName 指定使用的迁移配置

-IgnoreChanges 忽略检测到挂起的model改变,创建一个空的迁移。这个选项可用来为已有的数据库启用迁移创建一个初始的,空的迁移。

-ConnectionStringName 指定使用配置文件中连接字符串的名称

-ConnectionString 指定使用的连接字符串

-ConnectionProviderName 指定连接字符串的provider名称

9.Update-Database

在Package Manager Console中执行Update-Database将挂起的迁移更新到数据库。

执行get-help Update-Database -detailed查看Add-Migration的详细用法。

-SourceMigration 只有-Script打开时才有效。指定迁移的名称用作更新的起点。忽略则使用最后一次应用的迁移。

-TargetMigration 指定将数据库更新到哪个迁移的名称。

-Script 生成SQL脚本

-Force

-ProjectName

-StartProjectName

- ConfigurationTypeName

-ConnectionStringName 指定使用配置文件中连接字符串的名称

-ConnectionString 指定使用的连接字符串

-ConnectionProviderName 指定连接字符串的provider名称

 

以上是关于EF迁移命令的主要内容,如果未能解决你的问题,请参考以下文章

EF迁移命令

EF数据迁移命令

是否可以更改 EF 迁移“迁移”文件夹的位置?

连接更新数据库命令的EF6问题

添加新迁移时,EF 数据迁移不会检测到更改

EF 自动迁移不适用于虚拟属性