postgresql - Liquibase 生成空的 ALTER SEQUENCE 更改
问题描述
我有一组 JPA 实体,它们的 ID 由序列生成:
@GenericGenerator(
name = "catalog_items_history_seq",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = [
(Parameter(name = "sequence_name", value = "catalog_item_history_sequence")),
(Parameter(name = "initial_value", value = "1")),
(Parameter(name = "increment_size", value = "1"))
]
)
class CatalogItemHistory {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "catalog_items_history_seq")
var id: Long = -1
}
当我diffChangeLog
第一次运行 gradle 任务时,我得到了正确的 CREATE SEQUENCE 语句,并且序列创建好了。
但是,如果我再次运行该任务,我的更改日志包含如下更改:
<changeSet author="raibaz (generated)" id="1582110272824-1">
<alterSequence sequenceName="catalog_item_history_sequence"/>
</changeSet>
这会导致语法错误,因为它们生成的 SQLALTER SEQUENCE catalog_item_history_sequence
是无效的,因为它实际上并没有改变任何东西。
当我运行 liquibase 来更新我的数据库模式时,我得到的是:
Caused by: liquibase.exception.DatabaseException: ERROR: syntax error at end of input
Posizione: 52 [Failed SQL: (0) ALTER SEQUENCE public.catalog_item_history_sequence]
我的数据库是 PostgreSQL 12。
我错过了什么?有没有办法阻止 liquibase 创建这些更改?
解决方案
推荐阅读
- camera - 跨平台虚拟网络摄像头
- javascript - 为什么我的悬停覆盖在网站被黑后不起作用?
- vue.js - 如何强制用户使用最新版本的 PWA?
- python - 如何多次更新散景图?
- git-merge - 不能将 `git mergetool` 与 `git am` 或 `git apply` 或 `patch` 一起使用
- python - map() 函数获取输入
- javascript - 错误:找不到模块“./lib/_stream_readable.js”
- java - 如何将二维数组的所有元素初始化为java中的任何特定值
- c# - EasyModbus:断开网络连接不会改变连接状态
- statistics - 如何在 wso2am 中禁用特定 API 的分析