EF数据库迁移工具migration的使用
1、在DbContext类所在项目中添加 EntityFramework引用,可使用nuget添加
2、打开程序包管理器控制台(如果看不到程序包管理器控制台,在菜单栏中“其他窗口”中可找到),默认项目要选择你的DbContext类所在项目,然后输入命令,启用数据迁移
enable-migrations
运行后的结果:
A、 启用迁移之前还没有创建数据库
a) 在项目根目录下创建了一个Migrations文件夹
b) 在Migrations文件夹下新建了一个Configuration.cs文件。
我们可以通过修改Configuration.cs来对Migration做一些配置(比如在Seed方法中加入一些预定义数据(角色、用户等)等,以在启动应用程序时自动将这些预定义的数据添加到数据库中)
u.Name == adminUser.Name) == null) { context.Users.Add(adminUser); context.SaveChanges(); } } " v:shapes="文本框_x0020_2">
B、 如果启用数据迁移之前已经创建了一个数据库
如果启用数据迁移之前已经自动创建了一个数据库,则会在Migrations文件夹下添加Configuration.cs、yyyyMMddHHmmsss_InitialCreate.cs两个文件,InitialCreate文件包含了现有数据库架构的创建和删除命令
3、在修改了实体数据后,输入以下命令,更新数据库
add-migration XXX
XXX 为迁移指定的名称 比如:InitialCreate 或 AddName
它会生成一个yyyyMMddHHmmsss_XXX.cs的文件
该命令将根据自创建上次迁移以来对模型所做的更改,为下一次迁移搭建基架
在此时可以对生成的代码做一些修改,比如添加唯一索引,不可空列等
update-database [-verbose] [-targetmigration:XXX]
将所有挂起的迁移应用于数据库
update-database:直接应用于数据库
-verbose标记,用于以便您能够看见迁移所运行的 SQL。
-targetmigration 可对数据库升级或降级到指定版本之后的状态,若要降级到空数据库,可使用 update-database -targetmigration: $InitialDatabase 命令。