【问题标题】:Possibility of flyway custom clean scriptflyway自定义清洁脚本的可能性
【发布时间】:2012-11-12 03:30:46
【问题描述】:

我们的 Oracle 数据库使用“文本数据字典”模块。部分设置会创建首选项。

    -- create preference...
    begin
          ctx_ddl.create_preference(....);
      ctx_ddl.set_attribute(...);
    end;

问题是flyway clean 目标并没有放弃这个偏好。

所以,我的问题: 是否可以添加/配置额外的清理脚本来删除非表/索引/视图对象?或者有没有其他方法可以实现这一目标?

编辑:我刚刚意识到调度程序中的作业也是如此。它们也不会被 flyway clean 删除。例如:

      sys.dbms_scheduler.create_job(
      job_name => 'MY_JOB',
      job_type => 'plsql_block',
      job_action => 'begin ctx_ddl.sync_index('...'); end;',
      repeat_interval => 'freq=secondly;interval=60',
      comments => 'run every minute',
      enabled => true);
    end;

【问题讨论】:

    标签: oracle flyway


    【解决方案1】:

    开箱即用不支持自定义清理脚本。

    您必须使用自己的清理代码包装 Flyway.clean() 执行。

    【讨论】:

    • 我们将在哪里执行此操作?我们是在谈论 maven 执行还是 java 执行?这对于命令行工具来说是一个可行的解决方案吗?
    • 您可以将命令行脚本包装在另一个脚本中,或者在与 Flyway 相同的生命周期阶段运行 maven sql 插件,或者简单地包装 Java 调用。
    【解决方案2】:

    现在您可以使用Flyway callbacksafterClean 回调就是你要找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2014-05-12
      • 2017-01-03
      • 2011-08-27
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多