⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
更新扩展

UPDATE EXTENSIONS 语句允许将本地安装的扩展状态与发布给定扩展的仓库同步。该语句是及时获取扩展开发者发布的新功能或错误修复的推荐方式。

请注意,DuckDB 扩展无法在运行时重新加载,因此 UPDATE EXTENSIONS 不会重新加载已更新的扩展。要使用已更新的扩展,请重新启动运行 DuckDB 的进程。

更新所有扩展

要更新客户端 DuckDB 版本的所有已安装扩展

UPDATE EXTENSIONS;

这将遍历所有扩展并返回它们的仓库以及更新结果

┌────────────────┬──────────────┬─────────────────────┬──────────────────┬─────────────────┐
│ 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         │
└────────────────┴──────────────┴─────────────────────┴──────────────────┴─────────────────┘

更新选定的扩展

为了更精细的控制,您还可以提供一个要更新的扩展名称列表

UPDATE EXTENSIONS (name_a, name_b, name_c);

工作原理

UPDATE EXTENSIONS 的实现方式是(如果可用)存储 ETag 信息,并发送一个条件 GET 请求,该请求基于远程扩展与本地可用扩展不同的事实(使用 ETag 作为代理)。这确保了后续的 UPDATE EXTENSIONS 调用(如果远程状态未改变)是廉价的。

如果发现给定扩展有更改,DuckDB 将执行以下操作。例如,如果 name_aname_c 发生了更改,那么

UPDATE EXTENSIONS (name_a, name_b, name_c);

这将导致以下命令

FORCE INSTALL name_a;
FORCE INSTALL name_c;