Я использую настройку Spring Boot 2 / Flyway / Postgres.
Я хочу добиться, чтобы Flyway создал таблицу с последовательностью для автоматической итерации ключей. JPA должен распознать последовательность и использовать ее.
Я позволил Flyway выполнить скрипт PostgreSQL:
CREATE SEQUENCE config_id_seq;
CREATE TABLE config
(
ID BIGINT NOT NULL PRIMARY KEY DEFAULT nextval('config_id_seq'),
DESCRIPTION VARCHAR(500)
);
И это определение сущности:
@Entity
@Table(name = "config")
public class Config {
@Id
@SequenceGenerator(name = "config_id_sequence", sequenceName = "config_id_seq")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "config_id_sequence")
@Column(name = "id")
private long id;
@Column(name = "description")
private String description;
При запуске выдаются следующие ошибки:
Caused by: org.postgresql.util.PSQLException: ERROR: relation "config_id_seq" already exists
Caused by: org.postgresql.util.PSQLException: ERROR: cannot change sequence "config_id_seq"
Моя интерпретация заключается в том, что Flyway успешно выполнил сценарий и создал последовательность. Но JPA хочет создать последовательность впоследствии и терпит неудачу, потому что она уже существует. Пожалуйста, поправьте меня, если я ошибаюсь.
Теперь, как я могу настроить JPA для повторного использования существующей последовательности, если это возможно?