5

根据文档,RoundhouseE 有 3 种模式:

  • 普通的
  • 拖放创建
  • 恢复运行

前两个很清楚,但我不了解RestoreRun 模式及其在生产中提供的好处:

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

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

以下是我的问题:

  1. 我是否误解了 RestoreRun 的目的?
  2. 什么是 RestoreRun 如何使生产部署受益的示例场景?
  3. 除了在 RestoreRun 和 Normal 模式之间进行数据库还原之外,还有其他区别吗?

对此的任何见解将不胜感激。

4

3 回答 3

3

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

于 2012-07-29T12:11:36.470 回答
1

好的,所以我找到了一些线索来证实它的作用,但仍然不明白为什么。我在用户和 RoundhouseE 的作者之间找到了这个对话:

问: RestoreRun 是否与 Normal 相同,只是它先从备份执行还原?

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

于 2012-03-19T19:50:35.823 回答
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,这样当环境设置为生产环境时,这些脚本就不会被执行。

于 2011-11-08T01:23:17.113 回答