Como funciona “spring.jpa.hibernate.ddl-auto”

Hola buenas, hoy veremos un tema que muchos preguntan, “spring.jpa.hibernate.ddl-auto“.

Para el registro, la propiedad spring.jpa.hibernate.ddl-auto es específica de Spring Data JPA y es su forma de especificar un valor que finalmente se pasará a Hibernate bajo la propiedad que conoce, hibernate.hbm2ddl.auto.

Los valores createcreate-dropvalidate y update básicamente influyen en cómo la administración de la herramienta de esquema manipulará el esquema de la base de datos en el inicio.

Por ejemplo, la operación update consultará la API del controlador JDBC para obtener los metadatos de la base de datos y luego Hibernate compara el modelo de objetos que crea basándose en la lectura de sus clases anotadas o asignaciones XML de HBM e intentará ajustar el esquema sobre la marcha.

La operación update, por ejemplo, intentará agregar nuevas columnas, restricciones, etc., pero nunca eliminará una columna o restricción que puede haber existido anteriormente pero que ya no forma parte del modelo de objetos de una ejecución anterior.

Normalmente, en los escenarios de casos de prueba, es probable que use create-drop para crear su esquema, su caso de prueba agregue algunos datos simulados, ejecute sus pruebas y luego, durante la limpieza del caso de prueba, los objetos del esquema se eliminan, dejando una base de datos vacía .

En el desarrollo, a menudo es común ver a los desarrolladores usar update para modificar automáticamente el esquema para agregar nuevas adiciones al reiniciar. Pero entienda nuevamente, esto no elimina una columna o restricción que pueda existir de ejecuciones previas que ya no es necesaria.

En producción, a menudo es muy recomendable que use none o simplemente no especifique esta propiedad. Esto se debe a que es una práctica común que los DBA revisen los scripts de migración en busca de cambios en la base de datos, particularmente si su base de datos se comparte entre múltiples servicios y aplicaciones.

LEAVE YOUR COMMENTS