Zum Inhalt springen

UPDATE EXTENSIONS

Die UPDATE EXTENSIONS-Anweisung erlaubt es, den lokal installierten Extension-Zustand mit dem Repository zu synchronisieren, das eine gegebene Extension veröffentlicht hat. Diese Anweisung ist der empfohlene Weg, um mit neuen Funktionen oder Fehlerbehebungen von Extension-Entwicklern auf dem Laufenden zu bleiben.

Beachten Sie, dass DuckDB-Extensions zur Laufzeit nicht neu geladen werden können, daher lädt UPDATE EXTENSIONS die aktualisierten Extensions nicht neu. Um die aktualisierten Extensions zu nutzen, starten Sie den Prozess neu, der DuckDB ausführt.

Alle Extensions aktualisieren

Um alle für die DuckDB-Version Ihres Clients installierten Extensions zu aktualisieren:

UPDATE EXTENSIONS;

Das iteriert über die Extensions und gibt ihre Repositories und das Update-Ergebnis zurück:

┌────────────────┬──────────────┬─────────────────────┬──────────────────┬─────────────────┐
│ extension_name │ repository │ update_result │ previous_version │ current_version │
│ varchar │ varchar │ varchar │ varchar │ varchar │
├────────────────┼──────────────┼─────────────────────┼──────────────────┼─────────────────┤
│ iceberg │ core_nightly │ UPDATED │ 6386ab5 │ b3ec51a │
│ icu │ core │ NO_UPDATE_AVAILABLE │ v1.2.1 │ v1.2.1 │
│ autocomplete │ core │ NO_UPDATE_AVAILABLE │ v1.2.1 │ v1.2.1 │
│ httpfs │ core_nightly │ NO_UPDATE_AVAILABLE │ cf3584b │ cf3584b │
│ json │ core │ NO_UPDATE_AVAILABLE │ v1.2.1 │ v1.2.1 │
│ aws │ core_nightly │ NO_UPDATE_AVAILABLE │ d3c5013 │ d3c5013 │
└────────────────┴──────────────┴─────────────────────┴──────────────────┴─────────────────┘

Ausgewählte Extensions aktualisieren

Für feinere Steuerung können Sie auch eine Liste von zu aktualisierenden Extension-Namen angeben:

UPDATE EXTENSIONS (name_a, name_b, name_c);

Funktionsweise

UPDATE EXTENSIONS ist so implementiert, dass – sofern verfügbar – die ETag-Informationen gespeichert werden und eine GET-Anfrage gesendet wird, die davon abhängt, dass die entfernte Extension anders ist (mit dem ETag als Proxy) als die lokal verfügbare. So bleiben nachfolgende UPDATE EXTENSIONS-Aufrufe – wenn sich der entfernte Zustand nicht geändert hat – kostengünstig.

Wird für eine Extension eine Änderung gefunden, führt DuckDB die folgende Operation aus. Wenn sich zum Beispiel name_a und name_c geändert haben, dann:

UPDATE EXTENSIONS (name_a, name_b, name_c);

Das führt zu den folgenden Befehlen:

FORCE INSTALL name_a;
FORCE INSTALL name_c;