Laravel publicó 13.30.0 y 13.30.1 de forma consecutiva el 1 de septiembre de 2026. En el temario: la gestión de índices vectoriales desde las migraciones, un nuevo método de Eloquent para inserciones idempotentes y una serie de correcciones dirigidas a las colas, la caché y el motor SQL Server. No se anuncia ningún cambio rupturista, así que actualizar no exige reescritura.
Índices vectoriales gobernables desde una migración
El cambio destacado es la llegada de dropVectorIndex() al constructor de esquemas. La creación de índices vectoriales ya existía en la rama 13; faltaba eliminarlos de forma limpia desde una migración, algo imprescindible para escribir un método down() reversible. Almacenar vectores en la base de datos alimenta directamente la búsqueda semántica, hoy habitual en las aplicaciones que exponen herramientas a los agentes.
Schema::table('documents', function (Blueprint $table) {
// Create the vector index (already available before 13.30)
$table->vectorIndex('embedding');
});
// Reverse migration, now symmetrical
Schema::table('documents', function (Blueprint $table) {
$table->dropVectorIndex('embedding');
});Eloquent: insertar sin duplicar y recuperar las filas
El método insertOrIgnoreReturning() completa la pareja de insertOrIgnore() e insertGetId(). Inserta un lote ignorando las violaciones de restricción de unicidad y luego devuelve los registros realmente creados, en los controladores que admiten la cláusula RETURNING.
$inserted = Document::insertOrIgnoreReturning([
['reference' => 'DOC-1024', 'status' => 'indexed'],
['reference' => 'DOC-1024', 'status' => 'indexed'], // duplicate ignored
]);
// $inserted only holds the rows that were actually writtenColas y correcciones que conviene conocer
El evento WorkerStopping ahora transporta el nombre de la conexión y de la cola implicadas, lo que facilita diagnosticar las paradas de workers en producción. La mejora prolonga el trabajo sobre colas iniciado con Laravel 13.26. Dos correcciones merecen atención: en SQL Server la cláusula limit() se ignoraba durante un update(), y la caché etiquetada de Redis dejaba entradas huérfanas tras la invalidación.
| Componente | Cambio | Tipo |
|---|---|---|
| Esquema | dropVectorIndex() | Adición |
| Eloquent | insertOrIgnoreReturning() | Adición |
| Colas | Conexión y cola en WorkerStopping | Mejora |
| SQL Server | limit() respetado en update() | Corrección |
| Caché Redis | Entradas etiquetadas huérfanas eliminadas | Corrección |
Eliminar índices vectoriales era la pieza que faltaba: sin ella, ninguna migración de búsqueda semántica era realmente reversible.
El soporte de índices vectoriales depende del controlador de base de datos y de su motor. Conviene comprobar que la funcionalidad está disponible en el servidor, por ejemplo PostgreSQL con pgvector, antes de llevar una migración a producción.
Lo que hay que recordar
Laravel 13.30 no revoluciona nada, pero consolida dos frentes de fondo: la búsqueda vectorial nativa y la ergonomía de Eloquent para inserciones masivas. La actualización no conlleva riesgo de rotura y resulta útil sobre todo para proyectos que manejan embeddings o colas sensibles.
En mis proyectos, dropVectorIndex() resuelve un punto de fricción real: hasta ahora gestionaba el borrado de índices vectoriales en SQL crudo dentro de mis migraciones, con el riesgo de olvidar la versión de prueba. Ver que vuelve la simetría al constructor de esquemas es el tipo de detalle que ahorra tiempo a la larga. — Simon Janvier
Para profundizar
Notas de versión oficiales: Laravel 13.30.0 en GitHub y el CHANGELOG del repositorio.
