代码第一次迁移到生产数据库中

代码第一次迁移到生产数据库中

问题描述:

我有两个数据库,DEV和TEST。代码第一次迁移到生产数据库中

DEV由我维护,过去几周我一直在使用代码优先进行迁移。

TEST由DBA管理,他们希望提供SQL脚本以便将数据库更新到最新版本。

这是在这种情况下首先使用代码我的第一次,我认为我会需要使用命令

Update-Database -Script 

但是它不是很简单。

我在寻找的是一种指定上次应用于数据库的迁移方式。

因此,例如,我已经迁移编号为1.0,1.1,1.2,1.3,1.4等

我知道测试正在运行1.2版和DEV是在1.6,我想更新TEST 1.5 (请注意,这不是最新的版本)构建该脚本的命令是什么?

我试图

update-database -Script -TargetMigration "v1.5" 

但是这比迁移1.5到我的DEV数据库,给了我一个脚本,从滚动V1.6是dev的背是背到1.5,而不是一个脚本来更新到1.6

我知道我可以将项目中的连接字符串更改为指向TEST数据库,然后运行该命令,但是这看起来像是一种解决方法 - 必须有一种方法可以指定要开始的迁移以及迁移的内容编写脚本?

理想情况下,我想这样做而不将我的开发数据库回滚到与TEST相同的版本。

如果你在你的包管理控制台中运行以下您得到了更新,数据库命令的详细帮助:

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. 
+0

正是我所需要的。谢谢 – 5NRF