La mejora más práctica para las conexiones de base de datos es DB::usingWritePdo(). El método ejecuta una cadena de consultas mediante la conexión de escritura dentro de un callback y recupera la configuración anterior al terminar, incluso si se produce una excepción.
<?php
use Illuminate\Support\Facades\DB;
$posts = DB::usingWritePdo(
fn () => User::query()
->where('email', $email)
->first()
?->posts()
->whereNull('published_at')
->get()
);Esto resuelve un caso en el que el modelo inicial se obtiene desde la conexión de escritura, pero una consulta posterior sobre una relación termina en una réplica de lectura. El patrón resulta útil para consultar un pedido con su estado más reciente, leer el inventario después de ajustarlo o cargar permisos tras cambiar un rol.
El middleware PreventStaleDatabaseReads coordina las lecturas posteriores a una escritura entre distintas peticiones. Después de escribir en la conexión predeterminada, Laravel guarda una marca de tiempo en la sesión. Durante los dos segundos siguientes, las lecturas de ese usuario utilizan la conexión de escritura. Un grupo de rutas puede ampliar el periodo a diez segundos mediante PreventStaleDatabaseReads::for(10). La función requiere una sesión y solo ayuda al usuario que realizó la escritura. Por eso no sirve como solución general para API sin estado. Una aplicación con una sola conexión tampoco necesita este middleware.
La validación permite ahora valores float en la condición where de Rule::unique(). Una regla puede incluir, por ejemplo, 19.99 cuando la unicidad depende de la combinación entre un SKU y un precio. El cambio no sustituye una restricción de base de datos. La unicidad permanente de varias columnas debe seguir respaldada por un índice adecuado.
Eloquent corrige el uso de alias de ofMany() dentro de closures y las consultas agregadas de relaciones one-of-many autorreferenciadas. Estas relaciones seleccionan un único registro según un criterio, como el precio efectivo más reciente o el estado actual. Los proyectos que dependen de estas definiciones deberían incorporar pruebas de regresión antes de actualizar.
Los iteradores lazy() y lazyById() liberan ahora el bloque anterior conforme avanza el procesamiento. Esto reduce la memoria retenida durante exportaciones grandes, cambios masivos de inventario, procesos históricos, trabajos en segundo plano y migraciones. El consumo no será constante si el callback conserva todos los modelos procesados.
Los Unique Jobs eliminan ahora su bloqueo de caché si falla el despacho de un trabajo programado. Así, los siguientes intentos no quedan bloqueados por un lock abandonado. El cambio es relevante para informes periódicos, sincronizaciones con servicios externos e importaciones. Conviene probar los caminos de error con la configuración real de colas y caché.
La versión incorpora más correcciones para los valores float devueltos por collection mode(), las reglas de comparación de fechas que reciben valores no válidos y los cambios de esquema de SQLite con claves foráneas o nombres de tabla entre comillas. También mejora el tratamiento de Unique Broadcast Jobs omitidos. Los fallos inesperados de workers pueden contarse como excepciones para queued listeners, mailables y notifications que tengan esa opción activa. El almacenamiento en caché de rutas mejora cuando las rutas de salud se generan en una máquina y se usan en otra. Hay ajustes adicionales en la clonación de relaciones y en el comportamiento de las consultas de base de datos.
Para actualizar, php artisan --version muestra la versión instalada y composer show laravel/framework permite revisar la restricción del framework. composer update laravel/framework actualiza el paquete. Las dependencias relacionadas deben comprobarse antes de cambiar el conjunto instalado, y después hay que ejecutar php artisan test. Las pruebas deberían cubrir las lecturas inmediatas tras una escritura, las relaciones después de una modificación, las API sin sesión, los fallos de jobs programados, los procesos grandes con lazy() o lazyById() y las consultas ofMany(). Tras pasar por staging y producción, conviene vigilar las consultas, los errores de cola y los registros de la aplicación. Las notas oficiales de versiones de Laravel, el resumen de Laravel News y la documentación de Laravel 13.x son las referencias señaladas.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.