【问题标题】:Pattern for a db patch script数据库补丁脚本的模式
【发布时间】:2015-11-03 21:45:41
【问题描述】:

我正在寻找数据库补丁脚本遵循的模式。我们遇到了客户不运行补丁、或以错误的顺序运行补丁、补丁失败等问题,我们希望能够克服这些问题。我们正在使用 SqlServer 和 Oracle,但如果可能的话,我想要一些技巧来使脚本 db 不可知。

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

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的交叉帖子)

【问题讨论】:

    标签: sql-server database oracle


    【解决方案1】:

    您可以捕获以下详细信息。其中大部分来自 Oracle 应用程序 (ERP)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2013-04-14
      • 1970-01-01
      相关资源
      最近更新 更多