Laravel hat am 1. September 2026 unmittelbar hintereinander 13.30.0 und 13.30.1 veröffentlicht. Auf der Agenda: die Verwaltung von Vektorindizes aus Migrationen, eine neue Eloquent-Methode für idempotente Inserts und eine Reihe gezielter Korrekturen an Warteschlangen, Cache und dem SQL-Server-Treiber. Es werden keine brechenden Änderungen gemeldet, das Update kommt also ohne Umschreiben aus.
Vektorindizes aus einer Migration heraus steuern
Die auffälligste Neuerung ist dropVectorIndex() im Schema-Builder. Das Anlegen von Vektorindizes gab es im 13er-Zweig bereits; es fehlte das saubere Löschen aus einer Migration heraus, genau das, was eine reversible down()-Methode braucht. Vektoren in der Datenbank zu speichern, treibt direkt die semantische Suche an, heute üblich in Anwendungen, die Werkzeuge für Agenten bereitstellen.
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: einfügen ohne Duplikate und Zeilen zurückerhalten
Die Methode insertOrIgnoreReturning() vervollständigt das Paar aus insertOrIgnore() und insertGetId(). Sie fügt einen Stapel ein, ignoriert dabei Verletzungen der Eindeutigkeit und gibt anschließend die tatsächlich angelegten Datensätze zurück, bei Treibern, die die RETURNING-Klausel unterstützen.
$inserted = Document::insertOrIgnoreReturning([
['reference' => 'DOC-1024', 'status' => 'indexed'],
['reference' => 'DOC-1024', 'status' => 'indexed'], // duplicate ignored
]);
// $inserted only holds the rows that were actually writtenWarteschlangen und wichtige Korrekturen
Das Ereignis WorkerStopping trägt jetzt den Namen der betroffenen Verbindung und Warteschlange, was die Diagnose von Worker-Stopps in der Produktion erleichtert. Die Verbesserung setzt die Warteschlangenarbeit aus Laravel 13.26 fort. Zwei Korrekturen verdienen Aufmerksamkeit: unter SQL Server wurde die limit()-Klausel bei einem update() ignoriert, und der getaggte Redis-Cache hinterließ nach der Invalidierung verwaiste Einträge. Beide Korrekturen bleiben typischerweise unsichtbar, bis sie sich als sprunghaftes Produktionsverhalten zeigen, was allein schon Grund genug ist, den Patch im Blick zu behalten.
| Komponente | Änderung | Art |
|---|---|---|
| Schema | dropVectorIndex() | Neu |
| Eloquent | insertOrIgnoreReturning() | Neu |
| Warteschlangen | Verbindung und Queue in WorkerStopping | Verbesserung |
| SQL Server | limit() bei update() beachtet | Fix |
| Redis-Cache | Verwaiste getaggte Einträge entfernt | Fix |
Das Löschen von Vektorindizes war das fehlende Stück: ohne es war keine Migration für semantische Suche wirklich umkehrbar.
Die Unterstützung von Vektorindizes hängt vom Datenbanktreiber und seiner Engine ab. Vor dem Ausrollen einer Migration in die Produktion sollte geprüft werden, ob die Funktion serverseitig verfügbar ist, etwa PostgreSQL mit pgvector.
Das Wesentliche
Laravel 13.30 stellt nichts auf den Kopf, festigt aber zwei langfristige Baustellen: die native Vektorsuche und die Eloquent-Ergonomie für Massen-Inserts. Das Update trägt kein Bruchrisiko und lohnt sich vor allem für Projekte, die mit Embeddings oder sensiblen Warteschlangen arbeiten. Teams, die bereits auf dem 13er-Zweig sind, können es im Rahmen der normalen Wartung einspielen, da Composer es als gewöhnlichen Patch-Sprung ohne Konfigurationsänderung auflöst.
In meinen Projekten löst dropVectorIndex() einen echten Reibungspunkt: bisher habe ich das Entfernen von Vektorindizes in rohem SQL in meinen Migrationen erledigt, mit dem Risiko, die Testversion zu vergessen. Die Symmetrie im Schema-Builder zurückzusehen, ist genau das Detail, das auf Dauer Zeit spart. — Simon Janvier
Zum Weiterlesen
Offizielle Release Notes: Laravel 13.30.0 auf GitHub und der CHANGELOG des Repositorys.
