一、启用迁移更新
Enable-Migrations或 Enable-Migrations -Force或 Enable-Migrations -ContextTypeName或Enable-Migrations -EnableAutomaticMigrations
*如果需要覆盖原来的迁移,需要用到 -Force。
如果 Context 上下文有多个,就需要显式指定当前迁移的是哪一个上下文,相关命令参数叫:
Enable-Migrations -ContextTypeName MvcMovie.Models.MovieDbContext |
Enable-Migrations
-EnableAutomaticMigrations
|
在代码迁移和自动迁移之间进行切换时候,可能会报一个错:
未应用自动迁移,因为自动迁移会导致数据丢失。
那么先执行一下这个命令即可:
Add-Migration
initial
|
二、搭建基架
Add-Migration [命令名]
*将根据自从创建上次迁移以来您对模型所做的更改,为下一次迁移搭建基架。
*在执行一次 Add-Migration [命令名] 后,会生成一个“
待定状态”的迁移,需要把这个迁移更新到数据库,否则在试图生成新的迁移时(命令名不同),会被提示“请先应用待定的显式迁移,然后再尝试生成新的显式迁移”,这时只需要先应用 Update-Database,
把原来挂起的迁移应用于数据库,就可以再次生成(不同命令名的)新迁移了。
三、把挂起的迁移应用于数据库
Update-Database -Verbose
*将所有挂起的迁移
应用于数据库,并同时生成相应的 T-SQL 到控制台以顺便让开发者查阅核对
Update-Database -Script
*仅生成用来更新数据库的 T-SQL 脚本,而不立即应用于数据库
备注:
1、该操作依赖于 web.config 中的数据库连接配置,其连接到哪个服务器就更新哪个数据库.
2、那么,CodeFirst 能做到同样一份源代码,只需
更改
数据库连接,便可针对不同服务器上的数据库进行迁移操作。然后通过 FTP(FileZilla)工具上传源代码,即可达到 新源代码+新数据库 的状态。
3、在通过 Add-Migration 生成迁移基架后,如果仅想查看一下对应的脚本,则只需执行 Update-Database -Script。而如果想将迁移立即作用到某服务器的数据库上,只需先确认
web.config 中的数据库连接配置是期望的,然后执行 Update-Datab