【问题标题】:How to commit a Redgate Migration V2 migration script如何提交 Redgate Migration V2 迁移脚本
【发布时间】:2023-03-25 13:07:01
【问题描述】:
在 SQL 源代码管理中提交 Migration V2 脚本时的工作流程是什么?
- 在提交之前是否需要运行迁移脚本以将更改应用到开发数据库?
- 如果是这样,我是否提交both 表和 MigrationHistory?
【问题讨论】:
标签:
sql-server
version-control
redgate
【解决方案1】:
将以相反的顺序回答这些问题。
您确实需要检查表格和迁移历史 TVF。这样比较引擎在源代码管理中记录了表的新状态,因此它知道旧表不应该存在。
注意 - 这是迁移 v2 的测试版,用户界面不是最终状态。我们想让这变得不那么混乱,以便迁移脚本很明显取代了表的删除和创建。
您是否在本地运行迁移脚本在一定程度上取决于您在进程中添加迁移脚本的时间。
如果您按照该方案重命名文档中worked example 中没有数据的表,则假定您尚未在本地开发机器上重命名该表。在这种情况下,过程是:
- 编写脚本(包含 sp_rename 命令)
- 在本地运行脚本以重命名本地表
- 签入脚本(和表格),以便其他开发人员和环境接受更改
这是大多数迁移方案的一般情况,在这些情况下,您要先发制人地处理数据丢失方案并围绕它编写脚本。然而,特别是对于表重命名场景,还有另一种追溯方式:
- 在本地重命名表(使用智能重命名或标准重命名)
- 转到提交选项卡并单击数据丢失警告屏幕中的“添加迁移脚本”帮助程序(请参见下面的第一张图片)
- 此自动生成 sp_rename 和合适的保护
子句(见第二张图片)。在这种情况下,您不需要运行它,因为
您已经进行了更改
- 继续照常提交。