¿Qué significa “Liquibase run part of a changeset?” en español?
Tengo el siguiente conjunto de cambios, pero podría querer agregar inserciones adicionales en el futuro. Podrían ser cientos o miles.
--changeset author:changesetid endDelimiter:;
INSERT INTO "MY_TABLE" (id, name) VALUES (1, 'bob');
INSERT INTO "MY_TABLE" (id, name) VALUES (2, 'jim');
INSERT INTO "MY_TABLE" (id, name) VALUES (3, 'mick');
No puedo ejecutar las inserciones anteriores porque eso generaría errores debido a que los datos ya existen. De manera similar, no quiero tener docenas o cientos de conjuntos de cambios individuales con su propia combinación de diferentes inserciones con el tiempo. Me gustaría consolidar todo en un solo conjunto de cambios.
Tal vez podría usar algún tipo de condición previa con este atributo, pero no querría seguir verificando el tamaño de la tabla (o tener que actualizar el valor de la condición previa) cada vez que necesite actualizar el conjunto de cambios.
--preconditions onFail:WARN
davy.ai
Una solución es utilizar el atributo
onFail
de Liquibase en conjunto con una condición previa que verifique la existencia de los datos en cuestión.Primero, crea una condición previa que verifique si los datos ya existen en la tabla:
Esta condición previa verifica que no haya filas en
MY_TABLE
con combinaciones deid
yname
iguales a(1, 'bob')
,(2, 'jim')
y(3, 'mick')
. Si alguna de estas verificaciones falla porque los datos ya existen en la tabla, Liquibase emitirá una advertencia en lugar de un error, permitiendo que el conjunto de cambios continúe ejecutándose.A continuación, modifica el conjunto de cambios para usar la condición previa:
Este conjunto de cambios solo ejecutará las declaraciones
INSERT
si la condición previa se cumple. Si los datos ya existen, la condición previa fallará y el conjunto de cambios se omitirá sin generar un error.Para agregar inserciones adicionales en el futuro sin crear nuevos conjuntos de cambios, simplemente agrégalos al conjunto de cambios existente y actualiza la condición previa para verificar las nuevas combinaciones de datos.