Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
jhipster liquibase error de validación después de modificar la entidad

Estaba tratando de agregar un campo a mi entidad como CLOB. Al usar JHipster CLI, no hubo problema para agregarlo.

Ahora, cuando intento iniciar mi aplicación, aparece el siguiente error de validación de liquibase:

 liquibase.exception.ValidationFailedException: Validation Failed: 1 change sets check sum config/liquibase/changelog/20170221193921_xxxxxxxx.xml::20170221193921-1::jhipster was: 7:d8b3f42d8d4d523c7b14f93b4c7657c7 but is now: 7:a2a365179a0d231c2771ebd79f51b1fc

También probé lo siguiente:

 ./mvnw liquibase:clearCheckSums

El resultado fue BUILD SUCCESS .

También probé ./mvnw liquibase:update y updateSQL, el mismo resultado.

¿Alguien puede decirme cuál es mi problema con JHipster?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuando usamos liquibase, todos los cambios de entidad que ocurren más tarde deben capturarse como registros de cambios separados (por ejemplo, alterar una tabla como agregar una nueva columna). Jhipster cli siempre parece sobrescribir las entidades (cualquiera que sea el cambio) correspondientes archivos de liquibase (generalmente del patrón 'config/liquibase/changelog/20180607110114_added_entity_Employee.xml' ). Por lo tanto, la suma de comprobación del archivo liquibase de entidades cambia, ya que ahora tiene contenido nuevo. Y en su base de datos, hay una tabla llamada DATABASECHANGELOG que almacena qué registros de cambios se aplicaron y esto tiene datos de suma de verificación.

Ahora, cuando inicie su aplicación, obtendrá un error porque su último registro de cambios de liquibase de la suma de verificación de la entidad modificada es diferente de la última vez (la base de datos tendrá una suma de verificación para este archivo liquibase para la versión anterior) que ejecutó.

mvn liquibase:clearCheckSums no es el enfoque correcto la mayor parte del tiempo a menos que sea necesario. Esto realmente borra todas las sumas de verificación en la base de datos. Pierde la noción de los cambios que habían ocurrido, lo que generalmente no es intencionado. Estas características de liquibase tienen sentido, por ejemplo, cuando desea revertir los nuevos cambios que ha aplicado. Si borra las sumas de verificación y ejecuta la aplicación, calculará nuevas sumas de verificación, perderá la pista y puede causarle problemas si no se presta suficiente atención.

Solución adecuada:

  1. Realice cambios en sus entidades utilizando el subgenerador de entity sub-generator jhipster o jdl import o manual changes to your entities directly .
  2. Ahora verifique si el archivo liquibase correspondiente de las entidades se modificó o no. Por lo general, el nombre contiene '.._added_entity_...' . Por ej. 'config/liquibase/changelog/20180607110114_added_entity_Employee.xml' .
  3. Revierta ese archivo a lo que era en caso de que se sobrescribiera. Git es útil aquí para revertir.
  4. Si inicia la aplicación ahora, no obtendrá un error de suma de verificación de validación ya que la suma de verificación del archivo coincide.
  5. Pero el cambio que hicimos a la entidad no se captura en liquibase. Para esto, debe ejecutar mvn liquibase:diff . Esto generará un archivo changeLog. Verifíquelo manualmente una vez y agréguelo al archivo master.xml de master.xml . Se debe agregar al archivo maestro, ya que liquibase se refiere a este archivo para todos los registros de cambios.
  6. Si ejecuta la aplicación ahora, si no se aplicaron los registros de cambios, liquibase intentará aplicar estos nuevos cambios en la base de datos.

Para resumir, jhipster cli sobrescribe los archivos liquibase de las entidades. Reviértalos y ejecute mvn liquibase:diff para capturar los nuevos cambios en las entidades en un nuevo registro de cambios en lugar de sobrescribir el archivo liquibase generado anteriormente. Podemos ver que el error de suma de comprobación se resuelve y también se capturan los cambios de la base de datos en liquibase.

Referencias:
- Cómo lidiar con las actualizaciones de la base de datos liquibase y Jhipster. Verifique el encabezado con Database updates de datos

about 4 years ago · Santiago Trujillo Denunciar

0

Intente ejecutar la siguiente consulta en su base de datos: UPDATE DATABASECHANGELOG SET MD5SUM = null WHERE ID=' YOUR TABLE ID ';

SU ID DE TABLA en este caso parece ser = 20170221193921-1.

about 4 years ago · Santiago Trujillo Denunciar

0

Cuando agregamos una columna en Jhipster usando el comando jhpster entity xxxx , no se agrega como un conjunto de cambios separado, sino que la columna se agrega en el conjunto de cambios existente para crear la tabla y, como hay un cambio en el archivo, se genera una nueva suma de verificación y en el inicio es diferente de la base de datos, por lo que la validación falla

 <changeSet id="20181209164925-1" author="jhipster" > <createTable tableName="xxxxxx"> <column name="id" type="bigint" autoIncrement="${autoIncrement}"> <constraints primaryKey="true" nullable="false"/> </column> <column name="xxxxx" type="integer"> <constraints nullable="true" /> </column> <column name="xxxxx" type="integer"> <constraints nullable="true" /> </column> <column name="xxxxxx" type="varchar(140)"> <constraints nullable="true" /> </column> <column name="xxxx" type="bigint"> <constraints nullable="true" /> </column> <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove--> </createTable>

Para solucionar este problema, agregue un nuevo conjunto de cambios con agregar columna como etiqueta... como se muestra a continuación

 <changeSet id="20181209164925-2" author="jhipster" runOnChange="true"> <addColumn tableName="xxxxxx"> <column name="xxxxxx" type="date"></column> </addColumn>

Consultehttps://www.liquibase.org/documentation/changes/add_column.html

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda