Liquibase не откатывает теги базы данных - PullRequest
0 голосов
/ 23 марта 2020

Когда я выполняю откат из командной строки, он показывает успешно выполненный. Но в базе данных нет никаких изменений. Я использую PostgreSQL DB. Команда, которую я использовал для отката:

java -jar C:\Users\Ranjith.s\.m2\repository\org\liquibase\liquibase-core\3.5.5\liquibase-core-3.5.5.jar --changeLogFile=src\main\resources\db\changelog\db.changelog-master.xml  --url=jdbc:postgresql://localhost/transformation_as_a_service --classpath=C:\softwares\liquibase\lib\postgresql-42.2.11.jar --username=transformation_as_a_service_admin --password=transformation_as_a_service_admin --logLevel=debug rollback version_2020.3.002

Я вставляю файл журнала изменений для справки

<changeSet id="2020-03-UPDATE-PRIMARY-KEY-TO-COLUMN-PID" author="TAAS">
    <preConditions onFail="HALT">
        <columnExists tableName="TB_TRANSFORMATION" columnName="PID"/>
    </preConditions>
    <dropPrimaryKey constraintName="pk_tb_transformation" tableName="TB_TRANSFORMATION"/>
    <addUniqueConstraint tableName="TB_TRANSFORMATION" columnNames="ID" constraintName="idx_taas_id" />
    <addPrimaryKey tableName="TB_TRANSFORMATION" columnNames="PID" constraintName="idx_taas_pid"/>
    <rollback>
        <dropPrimaryKey tableName="TB_TRANSFORMATION"/>
        <dropColumn tableName="TB_TRANSFORMATION" columnName="PID"/>
        <addPrimaryKey tableName="TB_TRANSFORMATION" columnNames="ID" constraintName="idx_taas_id"/>
    </rollback>
</changeSet>

<changeSet author="TAAS" id="tag_version_2020.3.002">
    <tagDatabase tag="version_2020.3.002" />
</changeSet>

1 Ответ

0 голосов
/ 23 марта 2020

Если это ваш полный список изменений, и вы запустили liquibase update перед запуском команды liquibase rollback, то она работает, как задумано. Идея состоит в том, что вы запустите обновление, и оно развернет эти изменения. Затем вы продолжаете, добавляя другие наборы изменений и разворачивая их с помощью команды update. Но в одном из этих развертываний вы обнаружите проблему и решите, что вам нужно go вернуться к известной хорошей версии, поэтому вы используете команду отката с тегом, и она откатывает все ПОСЛЕ тег.

...