Liquibase генерирует пустые изменения ALTER SEQUENCE - PullRequest
2 голосов
/ 19 февраля 2020

У меня есть набор сущностей JPA, чьи идентификаторы генерируются с помощью последовательности:

@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, я получаю соответствующие операторы CREATE SEQUENCE и последовательности создаются нормально.

Однако, если я снова запускаю задачу, мой журнал изменений содержит такие изменения:

<changeSet author="raibaz (generated)" id="1582110272824-1">
    <alterSequence sequenceName="catalog_item_history_sequence"/>
</changeSet>

, которые приводят к синтаксической ошибке, потому что SQL они производят это ALTER 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.

Чего мне не хватает? Есть ли способ предотвратить возникновение этих изменений в жидкой основе?

...