validationfailedexception tutorial sets failed español check change maven liquibase changeset

maven - tutorial - Error de validación de suma de comprobación Liquibase sin ningún cambio



liquibase tutorial español (4)

Maven dispara la validación de liquibase falla incluso no se realizaron cambios en el conjunto de cambios.

Mi base de datos es Oracle.

Situación:

  1. En la tabla de registro de cambios DB se registró el conjunto de cambios <changeSet id="1" author="me" dbms="oracle"> ;

  2. Luego, por error, agregué otro conjunto de cambios <changeSet id="1" author="me" dbms="hsqldb">

  3. Los scripts de liquibase revisados ​​Maven dispararon el error de validación de la suma de comprobación.

  4. Luego cambié hsqldb changeSet a <changeSet id="2" author="me" dbms="hsqldb">

  5. Maven sigue disparando un error de validación de suma de comprobación.

  6. Luego cambié la primera suma de comprobación de changeSet en DB manualmente a la suma de comprobación actual y las secuencias de comandos se ejecutaron correctamente.

Todo se ve bien, pero cuando vuelvo a implementar toda la aplicación y ejecuto las secuencias de comandos de liquibase, la suma de comprobación del primer changeSet sigue siendo como antes del paso 6.


Mientras lucho con esto, quiero que sea más fácil para las personas con este mismo problema:

  1. ¡Importante !, liquibase tiene un liquibase tiene un archivo changlog.xml
  2. En maven pom.xml, coloque las siguientes propiedades.

<project ...> <plugins> <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>*****</version> <configuration> <changeLogFile>src/main/resources/mychangelogfile.xml</changeLogFile> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@//X.X.X.X:PORT/XE</url> <username>yourusername</username> <password>password</password> </configuration> <executions> <execution> <goals> <goal>clearCheckSums</goal> </goals> </execution> </executions> </plugin> </plugins> </project>

**** versión la que utilicé 3.2.0 en url reemplazar con IPADDRESS y PORT.

Finalmente ejecuta mvn liquibase:clearCheckSums

¡Espero eso ayude!


Los errores de validación de suma de comprobación son lanzados por liquibase para indicar que los cambios aplicados a la base de datos ya no coinciden con el mismo contenido especificado dentro de los archivos de changeset de liquibase ....

Esta es una medida de seguridad diseñada para detectar archivos de especificaciones que se comportan mal y que puede suceder fácilmente durante el desarrollo. La mejor manera de solucionar el problema es soltar todos los objetos y ejecutar liquibase contra el entorno de desarrollo fresco de la siguiente manera:

mvn liquibase:dropAll liquibase:update

Documentación para el objetivo drop-all

A veces, en realidad, quieres apoyar el cambio de conjuntos de cambios. En esas circunstancias, liquibase admite un atributo "runOnChange" que aplica selectivamente los conjuntos de cambios a la instancia de la base de datos.



En mi caso, olvidé que Liquibase escribe todos los chagelogs en la tabla de la base de datos.

Vaya a la tabla DATABASECHANGELOG y elimine manualmente sus chagelogs.