Instrução da Liquibase
autoIncrement="true"
gera serial
coluna para PostgreSQL. Para serial
coluna PostgreSQL irá criar uma sequência com um nome como tablename_colname_seq
. Os valores de coluna padrão serão atribuídos a partir desta sequência. Mas quando você explicitamente insira um valor na coluna serial, isso não afeta o gerador de sequência e seu próximo valor não será alterado. Assim pode gerar um valor duplicado, que é exatamente o seu caso.
Para evitar isso depois de inserir valores explícitos, você precisa alterar o valor atual de um gerador de sequência com
ALTER SEQUENCE
instrução ou com setval()
função, por exemplo:ALTER SEQUENCE tablename_colname_seq RESTART WITH 42;
SELECT setval('tablename_colname_seq', (SELECT max(colname) FROM tablename));
Isso deve corrigir o problema.