Проблемы с запуском жидкости с другим агентом - PullRequest
1 голос
/ 18 декабря 2009

Мне нужно выполнить тот же db-changelog с помощью ant, а затем к spring. Я надеюсь, что муравей запустит журнал изменений, и когда начнется весна, он ничего не сделает и просто остановится нормально. Ant успешно запустил db-changelog, а затем весенний, но выдает исключение, часть трассировки стека:

Причина: liquibase.exception.JDBCException: Ошибка при выполнении действия SQL CREATE TABLE (action_id int8 NOT NULL, action_name VARCHAR (255), version_no int8, reason_required BOOLEAN, comment_required BOOLEAN, step_id int8, действие CONSTRAINT action): ключ Причина: ошибка при выполнении действия SQL CREATE TABLE (action_id int8 NOT NULL, action_name VARCHAR (255), version_no int8, reason_required BOOLEAN, comment_required BOOLEAN, step_id int8, CONSTRAINT action_pkey PRIMARY KEY (action_id)): Причина: ОШИБКА: отношение «действие» уже существует; вложенным исключением является org.springframework.beans.factory.BeanCreationException ....

Любая помощь будет высоко ценится.

С уважением,

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Похоже, он пытается запустить журнал изменений снова. Каждый набор изменений в changeLog идентифицируется комбинацией идентификатора, автора и пути / имени файла журнала изменений. Если вы запустите «select * from databasechangelog», вы увидите используемые значения.

Ваша проблема может заключаться в том, что вы ссылаетесь на файл журнала изменений не так, как ant и spring, поэтому генерируете разные значения имени файла. Обычно вы хотите включить их в путь к классам, поэтому независимо от того, где и как вы их запускаете, они имеют одинаковый путь (например, «com / example / db.changelog.xml»)

0 голосов
/ 01 февраля 2010

Я столкнулся с этой же проблемой и смог ее исправить, изменив столбец имени файла в DATABASECHANGELOG для ссылки на путь ресурса пружины. В моем случае я использовал ServletContextResource в каталоге WEB-INF:

update DATABASECHANGELOG set FILENAME = 'WEB-INF/path/to/changelog.xml' where FILENAME = 'changelog.xml'
...