rollbackcount changelogsync checksum liquibase

checksum - changelogsync - ¿Cómo puedo obligar a Liquibase a recalcular las sumas de comprobación sin volver a ejecutar los extractos?



liquibase parameters (1)

En lugar de borrar las sumas de comprobación utilizando SQL, probablemente sea mejor dejar que Liquibase haga eso con el comando clearCheckSums :

http://www.liquibase.org/documentation/command_line.html

Elimina las sumas de comprobación actuales de la base de datos. En la próxima ejecución se volverán a calcular las sumas de comprobación.

Estamos utilizando Liquibase 3.2 con Java 6. ¿Hay alguna manera de forzar a Liquibase a recalcular las sumas de comprobación sin volver a ejecutar las mismas declaraciones de nuestros archivos Liquibase? En nuestra base de datos, corro esto ...

update DATABASECHANGELOG set md5sum = null where 1;

Sin embargo, cuando ejecuto mis scripts de cambio de Liquibase, ciertas ejecuciones siguen fallando con los siguientes errores ...

invoking liquibase change script with file /tmp/deploywork/db.changelog-master.xml running /usr/java/liquibase/liquibase --logLevel=info --driver=com.mysql.jdbc.Driver --classpath=/usr/java/jboss/modules/com/mysql/main/mysql-connector-java-5.1.22-bin.jar --changeLogFile=/tmp/deploywork/db.changelog-master.xml --url="jdbc:mysql://myservername:3306/my_db" --username=username --password=password update INFO 5/13/15 2:15 PM: liquibase: Successfully acquired change log lock INFO 5/13/15 2:15 PM: liquibase: Reading from my_db.DATABASECHANGELOG INFO 5/13/15 2:15 PM: liquibase: Successfully released change log lock Unexpected error running Liquibase: Validation Failed: 3 change sets check sum db.changelog-1.0.xml::1357593229391-25::rob (generated) is now: 7:5cfe9ecd779a71b6287ef2360a6979bf db.changelog-7.0.xml::create-address-email-index::davea is now: 7:da0132e30ebd6a1bc52d9a39bb8c56d7 db.changelog-7.0.xml::add-myproject-event-object-id-col::davea is now: 7:2eab5d784647ce33ef3488aa8c383443 SEVERE 5/13/15 2:15 PM: liquibase: Validation Failed: 3 change sets check sum db.changelog-1.0.xml::1357593229391-25::rob (generated) is now: 7:5cfe9ecd779a71b6287ef2360a6979bf db.changelog-7.0.xml::create-address-email-index::davea is now: 7:da0132e30ebd6a1bc52d9a39bb8c56d7 db.changelog-7.0.xml::add-myproject-event-object-id-col::davea is now: 7:2eab5d784647ce33ef3488aa8c383443 liquibase.exception.ValidationFailedException: Validation Failed: 3 change sets check sum db.changelog-1.0.xml::1357593229391-25::rob (generated) is now: 7:5cfe9ecd779a71b6287ef2360a6979bf db.changelog-7.0.xml::create-address-email-index::davea is now: 7:da0132e30ebd6a1bc52d9a39bb8c56d7 db.changelog-7.0.xml::add-myproject-event-object-id-col::davea is now: 7:2eab5d784647ce33ef3488aa8c383443 at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:181) at liquibase.Liquibase.update(Liquibase.java:191) at liquibase.Liquibase.update(Liquibase.java:174) at liquibase.integration.commandline.Main.doMigration(Main.java:997) at liquibase.integration.commandline.Main.run(Main.java:170) at liquibase.integration.commandline.Main.main(Main.java:89)

Aquí está uno de los conjuntos de cambios de los que se queja el script ...

<changeSet author="davea" id="add-myproject-event-object-id-col"> <addColumn tableName="sb_myproject_event"> <column name="OBJECT_ID" type="VARCHAR(32)"/> </addColumn> <createIndex indexName="SB_myproject_EVENT_IDX" tableName="sb_myproject_event" unique="false"> <column name="OBJECT_ID" type="varchar(32)" /> </createIndex> <sql>update sb_myproject_event set object_id=LEFT(SUBSTRING_INDEX(event_data, ''&quot;id&quot;:&quot;'', -2), 24) where object_id is null and event_data is not null;</sql> <!-- Delete older events that no longer need to be processed --> <sql>delete from sb_myproject_event where id not in (select q.* from (select e.id FROM sb_myproject_event e, (select object_id, max(date_processed) d from sb_myproject_event group by object_id) o where e.object_id = o.object_id and e.date_processed = o.d) q);</sql> </changeSet>

Como dije, solo quiero recalcular las sumas de comprobación (tengo que hacerlo porque estamos cambiando las versiones de Liquibase).