Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Duda sobre el UPDATE en MIGRATIONS

Mi duda es la siguiente: como bien vimos en el ultimo video de la clase 3 de spring boot 3, se actualizo las validaciones en la tabla medico para que ahora se agregue el campo de telefono como NOT BLANK, por lo cual se agrego un 3er registro pero a este mismo agregandole este campo; Que pasa a nivel de actualizacion debido a que previamente existian 2 registros previos sin un numero telefonico, porque al momento de insertar el campo de telefono estos quedaron vacios en los registros ya cargados en la DDBB, y si intentamos cargar nuevamente los datos nos arrojara el error de que ya existen campos con esa informacion cargada.

Espero expresar la duda lo suficientemente bien como para que se entienda, gracias! Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta
solución!

Hola Franco,

Entiendo tu preocupación y te felicito por tu observación. Sí, tienes razón, al agregar un nuevo campo como NOT NULL en una tabla que ya tiene registros, estos registros quedan con el nuevo campo vacío, lo cual puede generar problemas si intentas insertar datos de nuevo.

En un caso real, antes de realizar la migración que agrega el nuevo campo, tendrías que planificar cómo manejar los registros existentes. Hay varias estrategias que podrías usar, dependiendo de las necesidades de tu aplicación:

  1. Asignar un valor predeterminado: Podrías asignar un valor predeterminado a los registros existentes. Por ejemplo, si agregas un campo de teléfono, podrías asignar un número de teléfono ficticio o un valor que indique que el teléfono aún no se ha proporcionado.

  2. Realizar una limpieza de datos: Podrías eliminar los registros que no cumplen con las nuevas reglas de validación. Esta opción solo sería viable si los datos no son críticos o si puedes permitirte perderlos.

  3. Permitir valores NULL temporalmente: Podrías agregar el nuevo campo sin la restricción NOT NULL, actualizar los registros existentes y luego agregar la restricción.

Verifica también la actualización de la entidad en la aplicación: Si actualizaste la entidad medico en tu aplicación para requerir que el campo telefono no esté en blanco (NOT BLANK), esto significa que las futuras inserciones o actualizaciones de registros en la tabla medico deberán incluir un número de teléfono válido. Esto no afectará los registros existentes en la base de datos, ya que las restricciones de validación se aplicarán solo a las nuevas operaciones de inserción o actualización.

Además, en el caso del video de la clase, se trata de un ejemplo didáctico y no se toma en cuenta el manejo de los registros existentes. En un entorno de producción, tendrías que manejar esta situación con cuidado para evitar la pérdida de datos o la violación de las reglas de validación.

Espero haber aclarado tu duda. Recuerda que estos son solo ejemplos y la estrategia que elijas dependerá de las necesidades específicas de tu aplicación.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios