我有两个数据库,DEV和TEST。
DEV由我维护,过去几周我一直在使用代码优先迁移进行开发。
TEST由DBA管理,他们希望提供SQL脚本以便将数据库更新到最新版本。
这是我第一次在这种情况下首先使用代码,我假设我需要使用命令
Update-Database -Script
然而,它并不那么简单。
我正在寻找的是一种指定上次应用于数据库的迁移的方法。
例如,我的迁移编号为v1.0,1.1,1.2,1.3,1.4等
我知道TEST目前正在运行v1.2而DEV正在运行1.6,我想将TEST更新为1.5(请注意,这不是最新版本)构建该脚本的命令是什么?
我试过
update-database -Script -TargetMigration "v1.5"
然而,这将迁移1.5与我的DEV数据库进行了比较,这给了我一个脚本,该脚本从v1.6回滚到dev,而不是脚本更新为1.6
我知道我可以将项目中的连接字符串更改为指向TEST数据库,然后运行命令,但这似乎是一种解决方法 - 必须有一种方法可以指定迁移开始和迁移编写脚本?
理想情况下,我希望在不将我的dev数据库恢复到与TEST相同的版本的情况下执行此操作。
答案 0 :(得分:1)
如果在包管理器控制台中运行以下命令,则会获得Update-Database命令的详细帮助:
get-help Update-Database -detailed
从那里你可以看到参数,我认为这就是你需要的。
-SourceMigration <String>
Only valid with -Script. Specifies the name of a particular migration to use
as the update's starting point. If omitted, the last applied migration in
the database will be used.
-TargetMigration <String>
Specifies the name of a particular migration to update the database to. If
omitted, the current model will be used.