Откат Liquibase через Maven - PullRequest
0 голосов
/ 17 мая 2018

Я только начал использовать Liquibase для управления своей схемой, и я использую команды Maven для выполнения Liquibase.Я успешно обновил схему, однако у меня возникла проблема при тестировании функции отката.

Журнал изменений формата SQL

--changeset me:create-myschema
CREATE SCHEMA myschema;

--changeset me:create-table1
CREATE TABLE myschema.table1(
  id bigint,
  description varchar(100)
);
--rollback DROP TABLE myschema.table1;

--changeset me:create-table2
CREATE TABLE myschema.table2(
  id bigint,
  code varchar(10)
);
--rollback DROP TABLE myschema.table2;

-- changeset me:tag-1.0
UPDATE databasechangelog SET tag='1.0' WHERE dateexecuted = (SELECT max(dateexecuted) FROM databasechangelog);

Команда отката Maven

mvn liquibase:rollback -Dliquibase.rollbackTag=1.0

Результаты

[ОШИБКА] Не удалось выполнить цель org.liquibase: liquibase-maven-plugin: 3.6.1: откат (default-cli) в проекте myproject: Ошибка при настройке или запуске Liquibase: liquibase.exception.RollbackImpossibleException: нет обратного созданию liquibase.change.core.RawSQLChange -> [Справка 1]

1 Ответ

0 голосов
/ 17 мая 2018

Liquibase говорит, что для набора изменений не определен тег отката me:tag-1.0. Поскольку Liquibase не знает, что этот набор изменений является набором изменений «базы данных тегов», вы должны сообщить ему об отсутствии отката, указав пустой откат для этого набора изменений.

-- changeset me:tag-1.0
UPDATE databasechangelog SET tag='1.0' WHERE dateexecuted = (SELECT max(dateexecuted) FROM databasechangelog);
-- rollback

-- changeset me:next-change
...