如何将RoundhousE与由于git行结束规范化而改变的一次性脚本对齐?

时间:2014-04-14 04:39:16

标签: git roundhouse

我使用RoundhousE来管理数据库迁移,并且由于糟糕的遗留git配置,脚本已经被提交到具有不一致的行结尾的git。我想规范化这些行结尾,当然,这样做RoundhousE会检测这些文件的哈希变化。

从RoundhousE的角度来看,我接受这是正确的行为,但我不确定最好的补救途径。我们已经在数据库中投入使用。

我有点失去了最好的方法,所以到目前为止没有做太多的研究,很高兴与以前有经验的人一起讨论。


选项#1

首先提交一个UPDATE脚本,将[RoundhousE]。[ScriptsRun]哈希表引导到已更改的新一次性脚本的正确哈希值。然后提交一次性脚本。我真的不喜欢这种做法,感觉很脏,而且很讨厌。

2 个答案:

答案 0 :(得分:1)

有两个可能有用的命令行选项:WarnOnOneTimeScriptChangesBaseline结合使用。

  

-w, - warononetimescriptchanges | WarnOnOneTimeScriptChanges - 指示RH执行先前针对数据库运行而不是失败的已更改的一次性脚本(Up文件夹中的DDL / DML)。将为重新运行的每个脚本记录一条警告。默认为false。

此选项将执行您的迁移,这可能不是您想要的。这就是为什么你还应该指定--baseline。

  

- 基线| Baseline - 指示RH为其记录表创建插入,但不对数据库实际运行任何内容。如果您已经有通过其他方式运行的脚本(以及在启动新脚本之前),请使用此选项。

我还没试过这个,但是这两个开关一起应该记录新的脚本哈希而不实际执行任何操作。

答案 1 :(得分:1)

您要使用--warnandignoreononetimescriptchanges

WarnAndIgnoreOnOneTimeScriptChanges-指示RH忽略并更新以前针对数据库运行的一次更改脚本(Up文件夹中的DDL / DML)的哈希,而不是失败。对于每个重新运行的脚本,都会记录一条警告。默认为false。

第一次运行将获得以下输出:

21-Apr-2020 22:23:52    2019-12-17_1100_SomeScript.sql is a one time script that has changed since it was run. build    
21-Apr-2020 22:23:43    BASELINING: Recording 2019-12-17_1100_SomeScript.sql on 10.0.0.14,1433 - DATABASENAME.

后续运行将显示“已跳过”。