【问题标题】:Flyway : interest of creating a SQL init file?Flyway:有兴趣创建 SQL 初始化文件吗?
【发布时间】:2012-03-20 23:39:17
【问题描述】:

如果我错了,请纠正我,但 Flyway 集成现有数据库的第一步似乎是创建一个 SQL 初始化文件,其中包含 DDL 和从生产中提取的参考数据 (See here)。但我不明白这样一个文件的目的,因为 Flyway 的 maven 插件和 Flyway 的 API 似乎都没有使用它。因此,没有机会使用 Flyway 提供的工具将数据库恢复到初始状态。 任何人都知道创建初始化文件的兴趣吗?

【问题讨论】:

    标签: maven-plugin database-migration flyway


    【解决方案1】:

    这背后的想法是将所有环境与生产相结合,这样您就有了一个可以依赖的共同基础。

    这样做的目的是确保针对生产运行的迁移将在开发和测试中具有相同结构的数据库上进行尝试。

    【讨论】:

    • 感谢 Alex,但更准确地说,创建名称与基本版本名称匹配的 SQL 初始化文件有什么好处?例如,我应该在启动 mvn flyway:init -Dflyway.initialVersion=1.0 -Dflyway.initialDescription="base version" 之前创建一个名为 V1.0__base_version.sql 的文件,因为该文件似乎没有被 flyway 利用吗?
    • flyway:init 用于生产数据库以指示这是 Flyway 将管理更新的状态。 V1.0__base_version.sql 将包含这个确切的结构并应用于所有其他环境。这样,所有环境都将具有相同的结构,并且 Flyway 将报告 1.0 作为所有环境中的当前版本,即使尚未针对生产数据库执行迁移。唯一发生的事情是使用单个标记行创建元数据表,这是 init 命令的结果。
    • 好的,我明白了。感谢并祝贺您的​​框架!
    • 谢谢!非常感谢您的反馈:-)
    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2014-03-02
    • 2021-11-26
    • 2021-08-18
    相关资源
    最近更新 更多