RoundhousE的RestoreRun模式的目的是什么?

时间:2011-10-26 17:39:46

标签: data-migration roundhouse

根据documentation,RoundhousE有3种模式:

  • 正常
  • DropCreate
  • RestoreRun

前两个是明确的,但我不明白RestoreRun Mode及其在生产中提供的好处:

  

一旦投入生产,就从DropCreate切换到   如果数据库足够小,则为RestoreRun模式。如果没有,你可以   通过切换到新脚本继续维护模式的想法   您要更改的名称。您也可以备份结构   仅(如果您使用像LiteSpeed这样的工具,还有一些查找数据)   并从中恢复。

我的印象是RestoreRun会在运行迁移脚本之前恢复数据库的备份。如果是这种情况,我可以看到它在我不断测试我的新脚本的开发中很有用,但是没有看到它用于生产的目的。

以下是我的问题:

  1. 我是否误解了RestoreRun的目的?
  2. RestoreRun如何使生产部署受益的示例场景是什么?
  3. 除了从RestoreRun和Normal模式之间的数据库恢复开始之外还有其他区别吗?
  4. 对此的任何见解都将非常感激。

3 个答案:

答案 0 :(得分:3)

你误解了文档。它没有说在生产中使用RestoreRun。它说你应该在开发过程中使用它,当你的数据库已经投入生产时。

答案 1 :(得分:1)

好的,所以我找到了一些确认的线索,但我仍然不明白为什么。我在用户和RoundhousE的作者之间找到了这个dialog

  

问: RestoreRun与Normal相同,但执行恢复除外   先备份?

     

A:是的,它也不会在runAfterCreate文件夹中运行项目。它   包括/ restore / restorefrompath = VALUE   / restorecustomoptions = VALUE / restoretimeout = VALUE项。   https://github.com/chucknorris/roundhouse/wiki/ConfigurationOptions

答案 2 :(得分:0)

这些必须是新模式,因为我没有在我的版本的rh.exe选项中看到它们。

“\ shared \ MSBuild \ Roundhouse \ rh.exe”-w / restoretimeout 36000 /cs=%server.connectionstring% /f=%sql.files.directory%/vf=%version.file% / vx =% version.xpath%/r=%repository.path% / env =%environment%

这相当于普通模式。

为了生产你需要的东西就像上面那样。 您不希望在生产中运行的任何新脚本都需要具有ENV。%environment%.sql,以便在环境设置为生产时不会执行这些脚本。