数据库补丁脚本的模式

时间:2015-08-11 15:14:26

标签: sql-server database oracle

我正在寻找数据库补丁脚本的模式。我们遇到的问题是客户没有运行补丁程序,或者运行顺序错误,修补程序失败等等,我们想要了解它。我们正在使用SqlServer和Oracle,但是如果可能的话,我想要使脚本与数据库无关。

我认为我所追求的是一个愚蠢的脚本,我们可以重新运行而不会创建重复的条目,如果它在中途失败就不会留下任何痕迹。例如像这样的东西:

INSERT INTO auditTable (scriptName, txt, dt) VALUES "$nameOfScript$" "starting", $date.now$
begin transaction
check auditTable to see if script has not already been run successfully?
upserts? (insert into ... where not exist)
INSERT INTO auditTable (scriptName, txt, dt) VALUES "$nameOfScript$", "completed ok", $date.now$
commit transaction

在我看来,这可能是众所周知的基础,我应该复制一些模板,是否有一个?感谢。

(这是来自:https://softwareengineering.stackexchange.com/questions/292101/boiler-plate-pattern-for-a-db-patch-script

的交叉帖子

1 个答案:

答案 0 :(得分:1)

您可以捕获以下详细信息。其中大部分都是从Oracle Applications(ERP)中收集的

  • PATCH_NUMBER / SCRIPT NAME
  • PATCH_DESCRIPTION
  • PATCH_ACTION_OPTIONS - 脚本的输入参数
  • START_DATE
  • END_DATE
  • SUCCESS_FLAG
  • FAILURE_COMMENTS
  • EXECUTED_BY
  • LAST_STEP - 在此处包含最后提交的步骤。脚本可以在重启期间使用它。即从此开始这一步