首页/新闻资讯/正文详情

Gel 扩展管理:深入掌握 `gel extension list` 命令与独立扩展的安装生命周期

发布时间:2026/9/23 10:03:31 来源:云帆数科 栏目:资讯中心
Gel 扩展管理:深入掌握 `gel extension list` 命令与独立扩展的安装生命周期
Gel 扩展管理深入掌握gel extension list命令与独立扩展的安装生命周期【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址: https://gitcode.com/gh_mirrors/ed/edgedbgel extension list是 Gel 命令行工具gelCLI中用于列出当前数据库实例已安装扩展的核心命令。本文以该命令为切入点完整讲解其语法、连接选项、输出格式并结合仓库源码剖析扩展在 Gel 内部的数据模型ExtensionPackage同时串联list-available、install、uninstall、instance restart与 schema 中using extension声明的完整生命周期帮助你从会敲命令进阶到理解原理。命令总览gel extension list能做什么在 Gel 中扩展extension是给数据库增加额外能力的标准途径。扩展既可以带来新的类型、标量类型、函数更重要的是可以引入全新的与数据库交互的方式例如 GraphQL、EdgeQL over HTTP、Auth、AI 等。扩展分为两类见 docs/reference/datamodel/extensions.rst内置扩展built-in extensions随 Gel 一起分发通过 schema 顶层using extension name;语句启用例如edgeql_http、graphql、auth、ai、pg_trgm、pg_unaccent、pgcrypto、pgvector独立扩展包standalone extensions以独立安装包形式存在只能通过 CLI 在本地项目管理的实例上安装postgis是最典型的代表也是各命令示例中的主角。gel extension list负责回答一个问题当前实例上已经装好了哪些独立扩展、各自是什么版本。它与gel extension list-available列出可安装的扩展互为对照是确认安装结果、排查问题的第一步。语法与全局选项根据 list.rst 的定义命令语法为gel extension list [options]该命令本身不接收位置参数可用的选项全部来自 Gel CLI 的全局连接选项Connection options用于指定要查询哪个实例/数据库相关完整说明见 gel_connopts.rst。也就是说凡是gel命令通用的--instance、--dsn、--database、--user、--password、--tls-*等连接参数对gel extension list同样适用——这一点在gel extension命令组内所有子命令中是一致的见 index.rst。命令组结构gel extension是一个命令组共包含四个子命令见 index.rst子命令说明gel extension list列出已安装的扩展gel extension list-available列出可安装的扩展gel extension install安装一个扩展gel extension uninstall卸载一个扩展输出格式解读一张两列的表运行命令后CLI 会以表格形式输出当前实例已安装的独立扩展每行包含两列Name扩展名与Version版本号。官方文档给出的输出示例为$ gel extension list ┌─────────┬───────────────┐ │ Name │ Version │ │ postgis │ 3.4.36b82d77 │ └─────────┴───────────────┘几点值得注意Version 格式版本号形如3.4.36b82d77即上游版本号 提交标识。这对应源码中ExtensionPackage.version字段的类型——verutils.Version见 edb/schema/extensions.py它不仅能表达普通的语义化版本还支持携带构建/提交后缀便于精确定位扩展包来源。空结果也是合法输出当实例上尚未安装任何独立扩展时命令同样正常返回只是表格的 Name 与 Version 两列之间没有数据行extensions.rst 中展示了空表形态。只展示独立扩展内置扩展如graphql、auth不通过 CLI 安装因此不会出现在gel extension list的输出中——它们用using extension在 schema 中声明启用。与list-available的对照已装 vs 可装gel extension list的姊妹命令gel extension list-available用于查询当前可以从扩展仓库获取的独立扩展包见 list-available.rst$ gel extension list-available ┌─────────┬───────────────┐ │ Name │ Version │ │ postgis │ 3.4.36b82d77 │ └─────────┴───────────────┘两者输出结构完全一致同样的 Name/Version 两列但语义不同gel extension list实例上已安装的扩展gel extension list-available仓库中可安装的扩展。实践中的典型用法是先用list-available确认候选扩展及其版本再用install安装最后用list核验安装结果构成查询 → 安装 → 核验的完整闭环。独立扩展的完整生命周期list 在其中扮演的角色要真正用好gel extension list需要把它放进独立扩展的完整生命周期里理解。官方文档 extensions.rst 给出了标准流程1. 查看可安装的扩展$ gel extension list-available2. 安装扩展$ gel extension install postgis Found extension package: postgis version 3.4.36b82d77 00:00:03 [] 22.49 MiB/22.49 MiB Extension postgis installed successfully.注意install命令带一个必填位置参数extension扩展名安装过程会先输出找到的扩展包版本随后显示下载进度条示例中为 22.49 MiB 的包最后确认安装成功见 install.rst。3. 核验安装结果list 的用武之地$ gel extension list ┌─────────┬───────────────┐ │ Name │ Version │ │ postgis │ 3.4.36b82d77 │ └─────────┴───────────────┘4. 重启实例使扩展生效$ gel instance restart这一步不能省略——安装独立扩展包后必须重启实例才能让扩展真正可用。这也意味着gel extension list的查询结果是基于实例当前运行状态的真实反映。5. 在 schema 中声明使用独立扩展安装并重启后就可以像内置扩展一样在 schema 顶层声明使用using extension postgis;需要强调的约束是扩展声明必须位于任何module块之外因为扩展作用于整个数据库branch而非某个特定模块。6. 卸载扩展$ gel extension uninstall postgis Extension postgis uninstalled successfully.uninstall与install一样接受必填位置参数extension见 uninstall.rst。一个重要的运维注意事项官方文档明确提示要恢复restore一份使用了独立扩展的 dump必须在恢复流程开始之前先安装该扩展。这与gel extension list直接相关——在gel restore之前执行gel extension list可以快速确认目标实例是否已具备恢复所需的扩展环境。源码视角ExtensionPackage与版本号背后的实现从源码层面看独立扩展在 Gel 内部被建模为一个全局对象ExtensionPackage见 edb/schema/extensions.py。该类的核心字段恰好解释了gel extension list输出与扩展行为字段类型说明versionverutils.Version扩展版本即list输出中的 Version 列支持3.4.36b82d77这类带提交后缀的版本scriptstr扩展主体脚本sql_extensionsFrozenCheckedSet[str]扩展依赖的一组 SQL 扩展名sql_setup_scriptstr安装扩展时执行的 SQL 设置脚本sql_teardown_scriptstr卸载扩展时执行的 SQL 清理脚本ext_modulestr扩展对应的模块名dependenciesFrozenCheckedSet[str]扩展的依赖项当前以字符串形式存储为将来携带版本信息预留空间从源码结构可以推断gel extension list展示的正是这些ExtensionPackage全局对象及其version字段的投影而install/uninstall命令在底层则分别对应创建/删除这样的全局对象并配套执行sql_setup_script/sql_teardown_script来完成 PostgreSQL 侧的安装与清理。这也是为什么安装后需要重启实例、以及 dump 恢复前必须预先安装扩展——因为扩展的 SQL 对象与数据库底层结构深度绑定。注ExtensionPackage类中的注释还提醒作为GlobalObject其数据存放在全局 JSON 中而非通过反射 schema 存储新增字段时需要同步更新pgsql/delta.py与 metaschema 中对应的存储/读取逻辑——这属于深入扩展机制的实现细节普通使用者无需关心。低层 DDLcreate extension/drop extension了解底层 DDL 有助于阅读迁移migration脚本。gel extension命令组管理的是扩展包而真正在 schema 中启用/停用扩展的是两条低层 DDL 语句见 extensions.rstcreate extension ExtensionName;为当前数据库5.0 起为 branch启用指定扩展例如create extension graphql;、create extension edgeql_http;drop extension ExtensionName;停用当前激活的扩展例如drop extension graphql;。日常使用中通常不需要直接执行这两条语句但了解它们能让你在审阅迁移文件时看懂扩展启停是如何被记录与回放的。小结与快速参考围绕gel extension list一张速查表收束全文场景命令查看已安装的独立扩展gel extension list查看可安装的独立扩展gel extension list-available安装扩展gel extension install extension卸载扩展gel extension uninstall extension安装后使扩展生效gel instance restart在 schema 中启用扩展using extension ExtensionName;核心要点回顾gel extension list输出两列Name / VersionVersion 形如3.4.36b82d77对应源码中ExtensionPackage.version字段它只反映独立扩展包内置扩展通过using extension声明不会出现在列表中独立扩展的标准流程是list-available → install → list核验→ instance restart → using extension恢复 dump 前必须先用list确认扩展环境就绪所有gel extension子命令共享 Gel CLI 的全局连接选项详见 gel_connopts.rst。更多背景可继续阅读 扩展数据模型文档 与 gel extension 命令组索引或在源码 edb/schema/extensions.py 中深入ExtensionPackage的实现细节。【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址: https://gitcode.com/gh_mirrors/ed/edgedb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

3天吃透中行核心逻辑:一文搞懂银行系统底层原理
3天吃透中行核心逻辑:一文搞懂银行系统底层原理

3天吃透中行核心逻辑:一文搞懂银行系统底层原理 翻过几百页官方文档还是云里雾里?别急,这种“文档太长抓不住重点”的痛点,90%的转岗开发者都踩过坑。 银行系统的代码不像互联网应用那样“快糙猛”,它讲究的是绝对的一致性与审计追踪。想搞懂… · 2026/9/23 10:03:31

学术期刊青年编委选拔与职业发展指南
学术期刊青年编委选拔与职业发展指南

1. 项目背景与核心价值"iMeta | 2025年优秀青年编委"这个项目标题背后,反映的是学术期刊领域一个非常值得关注的职业发展机会。作为在学术出版行业深耕多年的从业者,我见证过太多青年学者通过担任编委角色实现学术影响力的跃升。这类项目通常由… · 2026/9/23 10:03:31

箱包行业智能化转型与材料工艺创新
箱包行业智能化转型与材料工艺创新

1. 箱包行业的坚守与蜕变在广州白云国际会议中心的展馆里,人头攒动的亚洲箱包皮具交易会现场,我遇到了入行二十余年的老周。他正蹲在地上帮客户调试一款新开发的智能行李箱,额头上渗出细密的汗珠,却依然耐心地向对方解释着每一个功… · 2026/9/23 10:03:31

在 RT-Thread 上开发 Ambiq Apollo2 超低功耗 MCU:BSP 结构、构建流程与外设驱动全解析
在 RT-Thread 上开发 Ambiq Apollo2 超低功耗 MCU:BSP 结构、构建流程与外设驱动全解析

在 RT-Thread 上开发 Ambiq Apollo2 超低功耗 MCU:BSP 结构、构建流程与外设驱动全解析 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com… · 2026/9/23 16:47:28

Orleans 文档站点工程指南:基于 Astro + Starlight 的构建、API 参考生成与源码级校验体系
Orleans 文档站点工程指南:基于 Astro + Starlight 的构建、API 参考生成与源码级校验体系

后端微服务 【免费下载链接】orleans Cloud Native application framework for .NET 项目地址: https://gitcode.com/gh_mirrors/or/orleans 点击查看 免费下载 本篇指南围绕 Orleans 仓库中 docs/site/README.md 所描述的官方文档站点工程展开:它从概念… · 2026/9/23 16:47:22

QEMU virtio-balloon 客户机内存统计:guest-stats 轮询机制与 QMP 查询实战指南
QEMU virtio-balloon 客户机内存统计:guest-stats 轮询机制与 QMP 查询实战指南

QEMU virtio-balloon 客户机内存统计:guest-stats 轮询机制与 QMP 查询实战指南 【免费下载链接】qemu Official QEMU mirror. Please see https://www.qemu.org/contribute/ for how to submit changes to QEMU. Pull Requests are disabled. Please only use rele… · 2026/9/23 16:47:22

WordPress主题开发从零造轮子:style.css、index.php、functions.php三大核心文件详解
WordPress主题开发从零造轮子:style.css、index.php、functions.php三大核心文件详解

1. 项目概述:从零开始做一款真正能用的WordPress主题,不是套模板,是造轮子你点开这个标题,大概率不是想学“怎么在后台点几下装个现成主题”,而是卡在某个具体环节:style.css里注释写不对导致主题不识别&am… · 2026/9/23 16:47:22

PX4 中 SiK Radio 的固件构建与 AT 命令配置完全指南
PX4 中 SiK Radio 的固件构建与 AT 命令配置完全指南

嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 导读 SiK(SiK Radio)是一套面向遥测电台(telemetr… · 2026/9/23 16:47:22

审查结果的数据分析:误报率、采纳率与规则 ROI
审查结果的数据分析:误报率、采纳率与规则 ROI

审查结果的数据分析:误报率、采纳率与规则 ROI在企业级 AI 代码审查(AI Code Review)系统的长期运营中,“如何用严密的量化数据证明审查系统的真实价值与健康度” 是技术委员会与架构组必须回答的核心命题。 很多技术团队在引入 A… · 2026/9/23 16:47:15

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码