database - caracteristicas - flyway vs liquibase
La migraciĆ³n resuelta detectada no se aplica a la base de datos en la ruta de vuelo (2)
Estamos utilizando la ruta de desplazamiento para administrar la versión del esquema de base de datos y estamos enfrentando un problema. Dado que trabajamos en equipo y usamos git como nuestra administración de código fuente, en algunos casos, diferentes personas actualizarán el esquema de base de datos en su propio repositorio local. Si eso sucede, obtendremos
La migración resuelta detectada no se aplica a la base de datos: 2016.03.17.16.46 "
Otra persona agregó el tiempo "2016.03.17.16.46" y ya he aplicado algún sello de tiempo más tarde de ese momento. Si eso sucede, tenemos que limpiar todas las tablas de la base de datos y crearlas de nuevo. Hemos intentado establecer false en validateOnMigrate
e hicimos flywayClean
, pero nada ayuda. ¿Hay otra manera de cambiar eso?
... O simplemente limpia la tabla bootrun
y bootrun
nuevo.
Asegúrate de que tus secuencias de SQL sean todas idempotentes.
Luego, en el próximo lanzamiento, verás líneas de registros como:
o.f.c.i.s.DefaultSqlScriptExecutor : DB: relation "transaction_attempt" already exists, skipping (SQL State: 42P07 - Error Code: 0)
o.f.c.i.s.DefaultSqlScriptExecutor : DB: relation "provider" already exists, skipping (SQL State: 42P07 - Error Code: 0)
No te olvides de volcar los datos en el entorno de producción.
outOfOrder
es tu amigo aquí. Establézcalo en verdadero para permitir la inserción de esas migraciones después del hecho.