当前位置: 首页 > 知识库问答 >
问题:

将Flyway与Jenkins集成到现有数据库中

吴涵育
2023-03-14

我们从项目一开始就没有使用过Flyway。我们正处于先进的发展状态。让我们在与詹金斯的项目中开始使用Flyway。

从留档,我了解到的是:

将开发模式(DDL和DML)的备份作为SQL脚本文件,提供一个像V1_0_1__initial.SQL这样的文件名。

使用“flyway clean”清理开发数据库。

开发数据库基线 “飞行路线基线 -基线版本 =1.0.0”

现在,执行"flyway迁移",它将应用SQL脚本文件V1_0_1__initial.sql.

任何新脚本都应该使用更高的版本号编写(如V2_0_1__account_table.sql)

这是正确的方法还是有更好的方法?

共有1个答案

阎麒
2023-03-14

不,这不完全正确。清理然后再次执行您的DDL/DML可能是一个有用的测试,表明您已经做对了,但是如果您清理了数据库,就没有必要再基线化了。

基线的正确顺序是:

>

  • 将开发模式(DDL和DML)的备份作为SQL脚本文件,文件名为V1_0_0_initial.SQL

    在开发过程中,运行<code>flyway baseline-baselineversion=1.0.0</code>-这会告诉flyway数据库已经处于V1.0.0脚本表示的状态,不应再次运行。

    在其他环境中,运行<code>flyway migrate</code>-以便flyway运行V1.0.0脚本。您的各种环境现在应该处于相同的状态

    任何新的脚本都应该使用更高的版本号编写,并通过< code>flyway migrate应用于每个环境

  •  类似资料:
    • 我们从项目开始就没有使用过Flyway。我们正处于先进的发展状态。专家评论建议在我们的项目中使用Flyway。 问题是我们已经将部分服务(微服务)转移到了另一个测试环境中。 正确实现Flyway的最佳方式是什么?这些要求是: > 在开发环境中,无需更改已存在的架构。但是所有新脚本都应该使用Flyway来完成。 在测试环境中,不需要改变已经存在的模式。但是,当我们将项目从开发迁移到测试时,测试环境中

    • 我已经通读了Flyway(2.1.1)留档,我只是想澄清一点… 我将当前的DDL从生产数据库转储到一个文件V1__baseddl.sql中。我验证了我们的QA数据库有一个与生产相匹配的模式。 我现在想把我们的QA数据库置于Flyway管理之下(接着是生产)。我们通过API使用Flyway。我调用了flyway.setInitVersion(1),然后是flyway.init(),我希望它能找到V1

    • 问题内容: 有人知道将soapUI测试添加到我的CI版本的好方法吗? 问题答案: soapUI通过Maven或Ant提供测试自动化。在这里描述了Maven集成。 我在一个月前尝试过,但是在eviware存储库中遇到了一些奇怪的问题…因此,我现在通过Ant运行测试。您要做的是在soapUI bin目录中调用(或)脚本。您可以在此处找到可用的参数。 您必须在Hudson构建服务器上安装soapUI。然

    • 问题内容: 我正在使用Microsoft Sql Server Management Studio。我目前有一个包含数据的现有数据库,我将其称为DatabaseProd。我还有一个第二个数据库,其中包含用于测试的数据,因此数据既不完全正确也不是最新的。我将这个数据库称为DatabaseDev。 但是,DatabaseDev现在包含新添加的表和新添加的列等。 我想将此新模式从DatabaseDev复

    • Adding the capability to connect databases to Express apps is just a matter of loading an appropriate Node.js driver for the database in your app. This document briefly explains how to add and use som

    • 我在生产中有一个基于Hibernate的应用程序,有一个大型数据库。我需要在这个应用程序中向两个实体(两个表)添加审计,我决定使用Envers。 对于每次插入、更新或删除,Envers都会向实体的审核表中添加一条新记录。 如果从应用程序一开始就支持Envers,那么审计表将在实体创建(INSERT)时填充。 Envers留档非常薄,没有提到任何关于将Envers添加到现有应用程序的内容。 如果我简