问题标签 [liquibase-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
190 浏览

oracle - 变更集要求以识别由 liquibase 执行的唯一变更

我遇到了以下关于 liquibase 的文档,但对它如何识别独特更改的措辞感到困惑。 https://docs.liquibase.com/concepts/basic/changeset.html

它说:
'如果它已运行,则将跳过该变更集,除非该变更集中的 runAlways 标记设置为 true。运行变更集中的所有更改后,Liquibase 将插入一个新行,其中包含 id/author/filepath 以及 DATABASECHANGELOG 中变更集的 MD5Sum。

我的问题是:

  • 当所有这 3 个属性都不同于 DATABASECHANGELOG 表中存储的内容时,如果更改是唯一标识的?或者
  • 当这 3 个属性中的任何一个与更改日志表中存储的属性不同时,更改将被唯一标识。
0 投票
1 回答
102 浏览

java - 如何在 liquibase 的帮助下安排 mysql 事件?

我正在使用 liquibase 为我的 Spring Boot 应用程序管理数据库。现在我想在 db 上安排一个重复事件。但我想为此使用 liquibase。我的活动如下:

有什么办法可以让我在 changelog.xml 中编写一些代码并在 db 上创建上述事件?

0 投票
1 回答
579 浏览

oracle - Liquibase 创建/更改数据库用户

我想使用 Liquibase 创建和更改数据库用户。以下是对 Oracle DB 执行此操作的 SQL 查询。

我想让密码参数化,但changelog Property Substitution在 SQL 格式中不可用。

我选择 XML 作为后备选项,但无法将上述查询转换为 Liquibase XML 格式。我需要帮助将更改/创建用户查询转换为 XML。

0 投票
1 回答
102 浏览

java - 运行 Liquibase springboot 应用程序时 master.yaml 异常

Ref - LiquiBase 问题,类路径资源 [db/changelog/db.changelog-master.yaml] 无法解析为 URL,因为它不存在

我面临与上述类似的问题,但是我的配置中已经存在建议的解决方案。

异常 - Liquibase 无法启动,因为在 'classpath:/db/changelog/db.changelog-master.yaml 找不到任何更改日志

这是我的 application.yml 文件。它已经有了春天:我还需要做什么才能摆脱 master.yaml 的这个错误

弹簧:liquibase:更改日志:类路径:liquibase/v2/changelog.yml 启用:true

0 投票
1 回答
91 浏览

postgresql - 在 liquibase 4.0 的 sqlfile 标签中传递参数

我正在制作一个简单的 CI/CD 管道,其中有一些我需要使用 liquibase 在 aws RDS 上运行的 sql 文件。这里的模式名称可以不同,并且取决于提取代码的分支。createSchema.sql 文件中的示例 sql:

在我的 changelog.xml 文件中,我正在做这样的事情:

但这东西行不通。我也找不到任何关于在 liquibase 的外部文件中传递参数的可靠信息。请让我知道我需要做什么来修复它。

0 投票
1 回答
19 浏览

liquibase - 因为我没有访问 tp PGsql 服务器但我可以访问 PGadmin 所以有什么方法可以将 PGADMIN 连接到 Liquibase

由于敏感数据,我无法访问 PGSQL 服务器,但我可以访问“PGadmin”,有什么方法可以将“Liquibase”连接到 PGadmin,并且更改日志文件中的任何更改都会触发“Liquibase 更新”,然后PGadmin 触发服务器进行更改

0 投票
2 回答
256 浏览

liquibase - Liquibase GenerateChangeLog 在更改日志文件中不包含 schemaName

我正在使用以下命令生成更改日志

我的 liquibase.properties 文件如下:

changelog.xml 中的输出没有 schemaName,我的数据库中有多个 schema,所以我也需要 changelog 中的 schemaname。

输出 :

应该是 test_schema.hello_world 或者应该定义 schemaname。有什么建议我做错了吗?

0 投票
0 回答
131 浏览

java - Liquibase SQL 回滚语句不起作用

所以,我目前正在尝试在 Java 应用程序中使用 Liquibase。现在它工作正常,我为自己构建了一个小工具,它可以毫无问题地创建和更新 h2 数据库。当我尝试使用格式化的 SQL 变更集时,就会出现问题。

我使用 xml MasterChangelog。在这个变更日志中,我指定了两个变更日志:一个包含数据库结构并为我创建所有需要的表的 XML,第二个是一个 SQL 变更日志,其中包含我的所有插入语句和所有数据。

更新工作并将数据放入数据库,问题我无法回滚。所以我查了一下,发现我需要为每个变更集添加一个回滚语句,我这样做了,但它仍然不起作用

示例: SOME_TABLE('ID_TABLE1', 'ID_TABLE2', 'someInput')

这不起作用

或这个

我在回滚后添加了一个分号,在插入后将它们保留,使每个插入都有自己的变更集或像上面那样将它们组合在一起,但没有任何效果。我总是得到臭名昭著的:“没有与 liquibase.change.core.RawSQLChange 创建相反”。

我在 h2 数据库中尝试了这些,并且它们自己的语句工作正常。我不明白出了什么问题,无论是使用控制台还是我的 java 逻辑它都不起作用。有人知道出了什么问题吗?

如果是这样,我很感激我能得到的每一个提示。

0 投票
0 回答
69 浏览

h2 - 在 H2 上插入 liquibase 失败,启动期间找不到表

我正在使用 liquibase 4.3.3 使用 yaml 变更集将数据插入 H2 DB。但是,当我尝试启动服务器时,即使表存在,插入时也找不到表。但是,如果我使用生成的插入语句并禁用 liquibase 并使用 spring.sql.init.data-locations 指定具有插入 SQL 语句的 sql 文件,则此方法有效。你能帮我解决这个奇怪的问题吗?

0 投票
1 回答
136 浏览

war - Liquibase SQL 变更集无法加载 CSV 文件:FileNotFoundException

对 Liquibase 变更集使用 SQL 样式方法(这是我们的代码样式,我们不使用 XML)我正在尝试使用以下 SQL 变更集加载 CSV 文件

SQL

将 WAR 文件部署到 Wildfly 时出现以下异常

java.io.FileNotFoundException: foo/src/resources/liquibase/changelogs/2021/prices.csv (没有这样的文件或目录) 2021-09-22T20:52:18.581085123Z at java.io.FileInputStream.open0(Native Method) 2021-09-22T20:52:18.581087214Z 在 java.io.FileInputStream.open(FileInputStream.java:195) 2021-09-22T20:52:18.581089768Z 在 java.io.FileInputStream.(FileInputStream.java:138) 2021 -09-22T20:52:18.581092029Z at java.io.FileInputStream.(FileInputStream.java:93) 2021-09-22T20:52:18.581094150Z at com.mysql.jdbc.MysqlIO.sendFileToServer(MysqlIO.java:3772)

Master Change 日志文件引用 2021 目录,SQL 和 CSV 文件存在于同一目录中。

我尝试了以下其他路径,但它们仍然产生 FileNotFoundException

  • 价格.csv
  • liquibase/changelogs/2021/prices.csv
  • WEB-INF/classes/liquibase/changelogs/2021/CCC-220-marking-time-prices.csv
  • (绝对路径)/home/xxxx/Work/foo-service/foo/src/main/resources/liquibase/changelogs/2021/prices.csv

Liquibase 版本:3.5.1

Wildfly Jboss 版本:21

我已检查 CSV 文件是否存在于 WAR 文件中

任何想法如何解决这一问题?