9

シーケンスによって生成された ID を持つ一連の 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
}

diffChangeLoggradle タスクを初めて実行すると、適切な CREATE SEQUENCE ステートメントが取得され、シーケンスが正常に作成されます。

ただし、タスクを再度実行すると、変更ログには次のような変更が含まれます。

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

ALTER SEQUENCE catalog_item_history_sequence実際には何も変更していないため、それらが生成するSQLは無効であるため、構文エラーが発生します。

データベーススキーマを更新するために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 がこれらの変更を作成しないようにする方法はありますか?

4

0 に答える 0