问题标签 [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 投票
0 回答
58 浏览

liquibase - Liquibase diffChangelog 不生成回滚

如果我没有误解任何内容,liquibase 命令diffChangelog应该能够为某些类型的更改集生成回滚更改集,例如create tablerename column或者add column使用 liquibase gradle 插件版本 2.0.2 对我不起作用。运行这样的命令:

生成创建表更改集很好,但它不添加回滚部分。我是否误解了 Liquibase 能够为我做到这一点?

我正在使用 liquibase-core 版本 3.8.9 和 liquibase-groovy-dsl 版本 2.1.1。我尝试了许多更改日志文件格式,例如, xmlyaml但没有一个添加回滚。即使使用许可证密钥 PRO 回滚也不会添加。groovyjson

任何想法?

0 投票
1 回答
109 浏览

liquibase - SQL 格式的变更集的失败消息

我可以为格式化的 SQL 脚本添加先决条件,就像文档说的那样:

但我似乎无法为它们添加onFailMessageonErrorMessage

有没有我错过的方法?

还是我应该编写类似的代码
--precondition-onFailMessage:Better luck next time
并发送 PR?

0 投票
1 回答
338 浏览

postgresql - 如何使用标签标记变更集或变更日志文件 - webdevops/liquibase

我需要标记一个变更集以进行回滚。

试过这个

方式一

或者

在运行这个我得到

/入口点:第 172 行:执行:标签:未找到

方式二

或者

错误

发现以元素“addLookupTable”开头的无效内容。

我如何标记和回滚?

0 投票
0 回答
182 浏览

sql-server - Liquibase IndexExists 前提条件中的错误:无效的对象名称“SYS.INDEXES”

我在 SQL Server 中运行 indexExists 的前提条件时遇到了这个问题。我注意到在 liquibase https://liquibase.jira.com/browse/CORE-3107中报告了一个类似的错误。我没有看到它被关闭。以后的版本中是否解决了该错误。有没有解决这个问题的方法?

  • Liquibase 3.5.3 版
  • SQL Server 版本 14
0 投票
1 回答
548 浏览

oracle - Oracle数据库中将varchar2列转换为clob数据类型的问题

我的数据库中有一张Person表。我正在使用Oracle数据库。我有一列ADDRESS具有varchar2数据类型。我想将此列的数据类型从varchar2更改为clob。我正在通过Liquibase进行此更改。这是我的变更集。

通过上述变更集,我将能够从varchar2转换为clob。但正如您所看到的,我的最后一列名称是ADDRESS_CLOB。但我的要求是最终列名应该是ADDRESS并且它应该是clob数据类型。我该怎么做,请帮助我。

0 投票
2 回答
657 浏览

postgresql - Liquibase:错误:CREATE DATABASE 不能在事务块内运行

我正在尝试使用 liquibase 在 PostgreSQL 上创建一个数据库。这是我的 dbchangelog 文件

当我尝试liquibase update从我的项目目录运行时,我得到

我看到在 PostgreSQL 中设置 AUTOCOMMIT = ON 可以解决这个问题。但是这种方法只适用于 PostgreSQL 9.4 及以下版本。但我使用的是 AWS RDS PostgreSQL 9.6.8

0 投票
2 回答
571 浏览

java - Liquibase 生成的更改日志引发 SQL 语法异常

我使用 Liquibase 的 generateChangeLog 命令为现有数据库生成了更改日志。但是,当我尝试运行它时,会引发 SQLSyntaxErrorException。

更改日志

我尝试以不同的格式(xml、yaml、sql)生成文件,但即使语法有效,它们都失败并出现相同的错误。

我认为生成的日志字符集可能是一个问题,所以我尝试将以下内容添加到连接 URL。

看到这个问题后,我还确保文件是 UTF-8(没有 bom)。

运行 Liquibase 3.6.3

任何帮助将不胜感激!

编辑以添加主更改日志:

0 投票
1 回答
185 浏览

java - Liquibase 唯一约束不适用于名为“名称”的列,但适用于任何其他列

我想使两列唯一,并且当我尝试在一个addUniqueConstraint columnNames部分中列出所需的列时,我创建了具有两个addUniqueConstraint 原因的更改列表,但它不起作用。

因此,我为“setSpec”列指定了 addUniqueConstraint,为“name”列指定了第二个,但约束仅适用于“setSpec”列,我仍然可以插入具有重复名称值的实体。我也尝试将列从“name”重命名为“set_name”,但行为保持不变。

所以现在我对让两列都独一无二感到困惑。任何人都可以提出解决方案,或者指出我的错误,因为我认为这么大的库不会有这么简单的缺陷。谢谢你。但这是一件有趣的事情,当我只留下一个 addUniqueConstraint 部分时,任何一个指定的列都会获得约束。

这是我的桌子:

这是我尝试添加独特的约束

0 投票
3 回答
517 浏览

oracle - Liquibase - 执行多个 pl/sql 包

早上好,我正在创建我的 Liquibase 变更日志,以便能够一键部署 Oracle 对象。

在我的项目中,我们有许多包保存在文件系统中作为 pkb/pks(但我们也可以将它们保存为 sql)..

我想将 liquibase 配置为每次运行任务时始终执行包文件。

我找到了标签 includeALL .. 但这只会在文件属于路径时执行..

我怎么能每次都执行它们?

我尝试过这样的事情

但我有错误..

谢谢帮助

Liquibase 版本

注意:我正在通过 Gradle /IntelliJ 运行 liquibase

0 投票
0 回答
464 浏览

gradle - Liquibase gradle 插件似乎在 IntelliJ 中不起作用

我正在尝试将 Liquibase 集成到我公司的应用程序中。

我们的系统使用 Gradle 作为构建工具。我对 Gradle 很陌生。

我按照以下教程进行操作。

https://dzone.com/articles/managing-your-database-with-liquibase-and-gradle

我将以下内容添加到我的build.gradle文件中。

并添加了教程中的依赖项。

构建项目后,我可以看到如下所示的 Gradle 任务“开发”。

在此处输入图像描述

该教程说运行gradle task dev update以运行 gradle 任务。

但我认为我应该能够通过双击“Gradle”选项卡中的“开发”任务来做同样的事情,如上图所示。

我把它update作为一个论点,如下所示。

在此处输入图像描述

双击 Gradle 任务“dev”后,我得到以下输出。

在此处输入图像描述

尽管它说构建成功,但事实并非如此。该databasechangelog表未更新。

我可以配置liquibase.properties文件具有正确的属性,因为我通过终端运行 liquibase,它在同一个数据库中更新。

有谁知道为什么会发生这种情况?