代码之家  ›  专栏  ›  技术社区  ›  HSingh85

Flyway Oracle部署

  •  1
  • HSingh85  · 技术社区  · 7 年前

    我刚开始做一个新项目。我们正在从头开始构建一个新的应用程序。团队从一个全新的模式开始。我想自动化数据库构建过程,所以我开始寻找选择。Flyway似乎是个不错的选择。我已经玩了一点,发现了该工具的一些局限性。也许有人能帮上忙。

    SQL --DDL

    我们正在进行敏捷开发,因此文件名基于sprint编号。我们使用的文件命名约定是: Sprint脚本用户故事描述

    例如: S1\u 01\u US123\u CreateNewTable.sql S1\u 02\u US123\u AddConstraint.sql

    下一次冲刺:

    等等

    我设置了JDBC参数,并且能够连接。我用几个测试脚本测试了一些基本的东西,比如:清理、修复、信息和迁移,这很有吸引力。当我尝试部署所有脚本时,我开始遇到问题。问题如下: -它不喜欢以S1\u 01_*开头的文件名,文件名的其余部分不同,它们位于不同的文件夹中。

    我有以下问题:

      • DDLs
      • 包(每次部署时)。我们有一个单独的头文件和主体文件,所以也首先部署头文件。
    • 我可以更改schema\u version表的结构吗?

    我主要关心的是先运行DDL,然后再运行其他操作。如果我能做到这一点,那么我就可以开始使用Flyway,边走边学习。

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Hamish Carpenter    7 年前

    我可以使用Flyway构建而不必重命名文件吗?

    flyway.sqlMigrationSeparator 所有物试试“_US”,它将在脚本编号后中断。您还需要设置 flyway.sqlMigrationPrefix=S

    我如何让它按以下顺序部署:DDL、DML、包(每次部署时)。我们有一个单独的头文件和主体文件,所以也首先部署头文件。

    指定多个位置(用逗号分隔),并确保版本编号顺序有意义,就好像这些文件都在同一目录中一样。如果从命令行运行,请使用打开调试 -X

    此外,如果可能的话,您应该考虑将包重命名为可重复迁移(默认值:R),这样您只需要更改文件的内容,让flyway来获取它。

    我可以更改schema\u version表的结构吗?

    没有。这是由flyway管理的。

    我可以做选择性清洁吗?比如标记一些不被丢弃的物体?

    祝你好运