问题标签 [liquibase-hibernate]

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 投票
1 回答
1406 浏览

liquibase - Liquibase - 生成更改日志

我希望 Liquibase 从此数据库“测试”中生成更改日志。可能吗?

我已经有一个现有的数据库,里面有它的表和数据。

现在,我希望 Liquibase 从这个数据库“测试”中生成一个变更日志。可能吗?

这是我的命令,但它不起作用。

我不使用任何密码。

该错误与 --changeLogFile=C:\db.changelog.xml 有关

我想,Liquibase 将引用我的数据库“测试”,并在文件夹 C 中生成名为“db.changelog.xml”的更改日志。

我错了哪一部分?我错过了什么吗?

或者,Liquibase 不打算从现有数据库生成更改日志?

或者,Liquibase 的目的是仅从变更日志生成数据库?反之亦然?

0 投票
0 回答
162 浏览

liquibase - Liquibase 不适用于更改 Spring Boot 配置文件

我将 Liquibase 与 SQL Server 2014 一起用于我的 Spring Boot 项目。我试图在启动时填充几个表并在那里更新基本信息。

一切正常,但是当我更改 Spring Boot 配置文件时,liquibase 失败,抱怨表存在。我尝试完全删除数据库,并希望 Liquibase 为我创建它。它仍然抱怨该表存在。我不明白为什么。如果我对一个 Spring Boot 配置文件做同样的事情,它可以无缝运行,但问题是当我更改 Spring Boot 配置文件时,你能帮忙吗?

0 投票
1 回答
598 浏览

jdbc - 如何将 liquibase cmd 与 db2 ssl 连接一起使用?

我正在尝试使用运行 liquibase update 命令

但我收到以下错误。谁能帮我解决这个问题?如何指定证书的位置?

0 投票
0 回答
225 浏览

java - 为什么 liquibase 不从 JPA 实体生成更改日志?

我想在 oracle 和实体中的当前数据库之间生成差异。但是差异没有正确生成,我认为清算没有看到我的实体。

我用这些设置创建了 liquibase 属性文件:

应用程序-dev.yml

并执行这个命令

但 1-changeLog.oracle.sql 中的结果是

所以在我看来,hibernate 看不到我的实体。当我将 referenceUrl 设置为没有实体的包时,结果是相同的。

我试过了

也一样,但归还我

并且该类与实体在同一个包中。

为什么hibernate/liquibase看不到我的实体的问题在哪里?谢谢你。

0 投票
3 回答
1775 浏览

mysql - 强制 liquibase 使用 current_timestamp 而不是 now()

将 liquibase-core:3.6.3 与 MySQL 一起使用。

我第一次必须对列使用时间戳(3)而不是默认时间戳。由于我的时间戳列不可为空,如果未设置 DEFAULT 值,则添加 current_timestamp(直接在 MySQL 中或使用 liquibase)。

不是我面临 liquibase 生成的 SQL 不使用 CURRENT_TIMESTAMP 但 NOW() 作为要调用的默认函数的问题。这使得时间戳(3)不可能。

有没有办法强制 liquibase 在输出中使用 CURRENT_TIMESTAMP 而不是 NOW()?

输出: CREATE TABLE db_name.table_name(id INT unsigned NOT NULL, updated timestamp DEFAULT NOW() NOT NULL, CONSTRAINT PK_RULE_STATE PRIMARY KEY (id));

这工作正常。但是,更改timestamptimestamp(3)

输出: CREATE TABLE db_name.table_name(id INT unsigned NOT NULL, updated timestamp(3) DEFAULT NOW() NOT NULL, CONSTRAINT PK_RULE_STATE PRIMARY KEY (id));其中 NOW() 不是有效值。

使用相同的输出defaultValueDate

如果我使用defaultValue: current_timestamp()liquibase 足够聪明,可以将它检测为一个函数,它不使用文字字符串,但是,这仍然是 timestamp(3) 的一个重要值。最后,使用

产生输出:

CREATE TABLE db_name.table_name(id INT unsigned NOT NULL, updated timestamp(3) DEFAULT DEFAULT 'current_timestamp(3)' NOT NULL, CONSTRAINT PK_RULE_STATE PRIMARY KEY (id));

我最后的机会是根本没有设置默认值。这很好用,除了事实上,正如这个人很久以前所说的那样,MySQL 添加了ON UPDATE CURRENT_TIMESTAMP(3)并且我无法避免它。


那么,有没有办法强制使用 current_timestamp(3) 或作为备份计划,以防止 MySQL 生成该ON UPDATE部分?

0 投票
1 回答
1276 浏览

spring - liquibase diff hibernate 和 jpa 模型与空数据库抛出无法构建类文件

我有一个多微服务项目,一个微服务名为 Foo,在 Foo 服务 pom 下,我添加了一个带有 hibernate 的 liquibase 插件,如下所示:

liquibase.yaml 文件如下所示:

执行liquibase generateChangeLog工作正常,但liquibase diff抛出此错误:

我有一种预感,它是一个包问题,但它的包名称是正确的,所以这里有什么问题?谁能帮帮我?

0 投票
1 回答
2110 浏览

gradle - 如何将动态模式名​​称传递给 Liquibase 变更集并使用 liquibase gradle 插件在循环中运行它们

我们是 liquibase 的新手,并尝试像这样动态创建模式

但是当我们尝试执行时,我们得到了这个异常

如果社区可以为我们指明正确的方向,那将是非常有帮助的

0 投票
0 回答
983 浏览

gradle - 如何使用单个变更集 liquibase 动态创建模式

我们是 liquibase 和 gradle 插件的新手,我们想创建多个模式

能够创建这个脚本,但它只创建最后一个模式'temp5'而不是列表中的其他模式,可能是我们缺少关于 liquibase 如何执行变更集的知识,这里是 gradle 脚本

}

这是changelog3.xml

这成功执行但只创建模式“temp5”而不是 temp3 和 temp4

在此处输入图像描述

如果社区可以请我们指出正确的方向来创建列表中的所有模式,那将是非常有帮助的

0 投票
2 回答
606 浏览

postgresql - 如何将数据库模式从数据库 A 复制到数据库 B

我使用 liquibase 变更集创建了一个 Postgresql 数据库 A。现在,我正在创建一个应用程序,该应用程序允许创建一个新的数据库 B 并实时从数据库 A 复制架构,包括 liquibase 变更集,因为该数据库以后仍可以更新。请注意,在数据库 A 中复制模式时,可能已经更新,从而使基本变更集过时。

我的主要问题是:

  1. 如何使用 liquibase 将 PostgreSQL 模式 x 从数据库 a(在运行时动态生成)复制到 b?数据库 b 可能在另一台服务器上。
  2. 如果 liquibase 无法实现,还有哪些其他工具或方法可以实现这一点?

--

让我添加更多上下文:

  1. 我们使用 liquibase 变更集初始化一个新数据库的模式。
  2. 我们可以在运行时向数据库添加一个新表和字段。或者在应用程序运行期间。例如,我们将新表 people 添加到数据库 a 的模式中,该表最初不在变更集中。这也是使用 liquibase 类完成的。因此变更集被添加到 databasechangelog 表中。
  3. 现在,我们创建一个新的数据库 b。
  4. 我们想将数据库 a 的模式导入到 b 中,使用 people 表。

我希望这很清楚。

谢谢。

0 投票
0 回答
99 浏览

liquibase - Diff 未检测到索引存在

当我生成第一个差异时。差异文件看起来正确。它有我们需要创建的表。我运行应用程序,它创建表(Oracle),一切都很好。出于验证目的,我再次运行 diff 命令,期望它返回没有任何变化。不幸的是,它返回了对主键列的更改。如果我运行新的一组更改并进行另一个差异。它仍然返回相同的更改日志。它将无限地执行此操作。

我认为我可能使用了错误的依赖项,但我很迷茫。

聚甲醛

表创建更改集

始终创建的差异

液基性质

referenceUrl=hibernate:spring:com.example?dialect=org.hibernate.dialect.Oracle12cDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy