Gel/EdgeDB `gel database create` 命令详解:创建数据库及向 `gel branch create` 的迁移指南
数据库图数据库关系型数据库【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址https://gitcode.com/gh_mirrors/ed/edgedb点击查看免费下载gel database create是 Gel原 EdgeDB命令行工具中用于创建新数据库的终端命令其行为与 EdgeQL 语句create database完全等价。本文以 docs/reference/using/cli/gel_database/gel_database_create.rst 为骨架结合仓库源码edb/schema/database.py、edb/edgeql/parser/grammar/ddl.py与 CLI 连接选项文档完整讲解命令语法、参数含义、底层实现原理并给出 EdgeDB 5.0 引入 branches 后如何平滑迁移到gel branch create的实战方案。一、命令概览与弃用说明gel database create用于创建新的数据库命令完整语法如下gel database create [options] name其中name是新数据库的名称。该命令运行在你所连接到的 Gel 实例上因此与连接目标相关的参数如实例名、主机、端口、用户名等全部适用详见下文连接选项一节。重要该命令在 Gel 中已被弃用deprecated。官方建议改用gel branch create对应文档为 docs/reference/using/cli/gel_branch/gel_branch_create.rst。原因是 EdgeDB 5.0 引入了branches分支概念来取代 databases数据库相关背景可参见 docs/reference/datamodel/branches.rst 与 docs/intro/branches.rst。适用版本边界gel database create仅适用于EdgeDB 5.0 之前的实例版本如果你运行的是新版 GelEdgeDB 5.0 及以后请改用gel branch create交互式 shellgel中的\database create NAME反斜杠命令同样仅适用于旧版本实例5.0 及以后版本应使用\branch create NAME参见 docs/reference/using/cli/gel.rst 中的 Database 与 Branch 小节。二、功能说明与create database语句等价根据原文档的明确描述gel database create是create databaseEdgeQL 语句的终端命令等价形式。也就是说下面的两种方式在旧版本实例上效果相同# 方式一CLI 命令 gel database create mydb # 方式二EdgeQL 语句通过 shell 管道或交互式执行 cat EOF | gel create database mydb; EOF这种CLI 命令 ↔ EdgeQL 语句的对应关系在源码中可以得到印证。在 edb/schema/database.py 中模式层通过CreateBranch命令类处理数据库/分支创建class CreateBranch(BranchCommand, sd.CreateExternalObject[Branch]): astnode qlast.CreateDatabase # 对应 EdgeQL 的 CreateDatabase AST 节点 template struct.Field(str, defaultNone) branch_type struct.Field( qlast.BranchType, defaultqlast.BranchType.EMPTY)从源码结构看EdgeQL 语法层面的CREATE DATABASE语句在 edb/edgeql/parser/grammar/ddl.py 中由CreateDatabaseStmt非终结符解析归约为qlast.CreateDatabaseAST 节点再交由上述命令类执行。这从实现层面验证了文档所述终端命令等价于create database语句的说法。三、参数详解位置参数namegel database create namename是要创建的新数据库的名称为必填位置参数数据库名称需遵循 Gel 的命名规范且长度不得超过MAX_NAME_LENGTH。该限制在 edb/schema/database.py 的_validate_name方法中强制校验def _validate_name(self, schema, context) - None: name self.get_attribute_value(name) if len(str(name)) s_def.MAX_NAME_LENGTH: span self.get_attribute_span(name) raise errors.SchemaDefinitionError( fBranch names longer than {s_def.MAX_NAME_LENGTH} fcharacters are not supported, spanspan, )从源码看超出长度限制的命名会抛出SchemaDefinitionError校验逻辑同时复用于CreateBranch与AlterBranch两个命令类。四、连接选项Connection Optionsgel database create在被连接的 Gel 实例上执行因此需要先建立连接。原文档明确指出连接目标的指定方式参见 CLI 的 connection optionsdocs/reference/using/cli/gel.rst。常用连接参数整理如下选项说明-I name, --instancename连接指定名称的实例实际连接参数存储在gel_config_dir/credentials中通常由gel instance create等命令生成。覆盖 host 和 port。运行gel info可查看配置目录位置--dsndsn通过 DSN 字符串连接覆盖除密码外的所有其他选项--credentials-file /path/to/file使用 JSON 凭据文件连接-H hostname, --hosthostname服务器主机名默认取GEL_HOST环境变量-P port, --portport服务器 TCP 端口默认取GEL_PORT环境变量未设置时为5656-u username, --userusername连接用户名默认取GEL_USER环境变量或当前系统登录名-b branch-name, --branchbranch-name要连接的数据库分支名。旧版本实例使用-d dbname, --databasedbname--password / --no-password强制提示密码 / 禁用密码提示--password-from-stdin将标准输入的第一行作为密码--tls-ca-file /path/to/cert用于校验服务器的证书文件--tls-security modeTLS 安全模式default、strict、no_host_verification、insecure--wait-until-availablewait_time连接失败时持续重试直到超过指定时长如30s--connect-timeouttimeout连接超时时间默认10s需带时间单位如hr、min、sec、ms典型用法示例# 在默认本地实例上创建数据库 gel database create mydb # 连接指定实例后创建数据库 gel -I my_instance database create mydb # 通过主机与端口连接后创建 gel -H 127.0.0.1 -P 5656 -u admin database create mydb注意gel database create在当前 Gel 5.0 版本中已弃用以上示例适用于运行 EdgeDB 5.0 之前版本的实例。五、交互式 shell 中的对应命令除独立的 CLI 命令外Gel 交互式 shellgel同样提供了对应的反斜杠命令。在旧版本实例上可用\database create NAME该命令创建名为NAME的数据库语义与gel database create一致。而在 EdgeDB 5.0 及以后版本中应改用\branch create NAME后者镜像了gel branch create的全部选项详见 docs/reference/using/cli/gel.rst 的 Branch 小节。shell 中还可以用\l列出实例上的所有分支5.0或数据库旧版本便于创建前后核对。六、从gel database create迁移到gel branch create由于 EdgeDB 5.0 起 databases 已被 branches 取代新建环境或升级后应直接使用gel branch create。其语法为gel branch create [options] name根据 docs/reference/using/cli/gel_branch/gel_branch_create.rstbranch create在无任何选项时等价于create schema branchEdgeQL 语句其参数比旧的database create更丰富选项说明name新分支的名称必填--from oldbranch可选的基础分支新分支基于其创建。默认取$CONFIG/credentials中指定的当前分支-e, --empty创建无 schema、无数据的分支--copy-data将基础分支的数据复制到新分支使用示例# 基于当前分支创建新分支继承当前分支的 schema gel branch create mybranch # 基于指定分支创建 gel branch create mybranch --from main # 创建空分支无 schema、无数据 gel branch create scratch -e # 复制基础分支的数据创建新分支 gel branch create backup --copy-data从源码实现看CreateBranch命令类的branch_type字段qlast.BranchType.EMPTY等正是-e/--empty选项在模式层的落点当分支类型为TEMPLATE且不在测试模式下时会抛出EdgeQLSyntaxError而普通创建默认使用EMPTY类型edb/schema/database.py 中的逻辑保证了这一点。对于旧版gel database create的所有使用场景gel branch create配合--from、-e、--copy-data都能提供对等的甚至更灵活的能力因此官方将其作为替代方案。七、相关命令与进一步阅读gel database命令组还包含其他数据库管理工具docs/reference/using/cli/gel_database/index.rstgel database drop— 删除数据库gel database wipe— 清空数据库内容对应的分支版命令为gel branch drop、gel branch wipe位于 docs/reference/using/cli/gel_branch/ 目录。此外DropBranch命令类在源码层面还保护了EDGEDB_SPECIAL_DBS中的系统数据库禁止删除这一点在 edb/schema/database.py 的_validate_legal_command方法中有明确校验。如需深入理解数据库/分支的底层实现建议阅读edb/schema/database.py —Branch、CreateBranch、DropBranch等命令类的模式层实现edb/edgeql/parser/grammar/ddl.py —CreateDatabaseStmt等 DDL 语法解析规则docs/reference/using/cli/gel.rst — 完整的 CLI 连接选项与反斜杠命令参考docs/intro/branches.rst — branches 概念的入门介绍。八、总结gel database create是旧版 EdgeDB5.0 之前上创建数据库的标准命令语法简单、与create databaseEdgeQL 语句等价并在源码层通过CreateDatabaseAST 节点与CreateBranch命令类实现。由于 EdgeDB 5.0 用 branches 取代了 databases该命令已被弃用官方与源码均指向功能更强大的gel branch create作为替代——后者在保留创建语义的同时额外提供了--from、-e/--empty、--copy-data等选项能够覆盖并超越旧命令的全部使用场景。理解两者的关系与迁移路径有助于你在新旧版本 Gel 实例上正确、高效地管理数据空间。赞分享数据库图数据库关系型数据库【免费下载链接】edgedbGel supercharges Postgres with a modern data model, graph queries, Auth AI solutions, and much more.项目地址https://gitcode.com/gh_mirrors/ed/edgedb点击查看免费下载相关推荐Gel gel migration extract 命令详解从数据库恢复迁移历史到 dbschema/migrationsGel gel migration extract 命令详解从数据库恢复迁移历史到 dbschema/migrations gel migration ext数据库图数据库关系型数据库Gel CLI gel database 命令组详解兼容旧版数据库管理命令的完整使用指南Gel CLI gel database 命令组详解兼容旧版数据库管理命令的完整使用指南 导读 gel database 是 Gel前身 EdgeDB命令数据库图数据库关系型数据库Gel 分支管理命令完整指南gel branch 实战手册Gel 分支管理命令完整指南gel branch 实战手册 GelEdgeDB 的下一代名称通过内置的 分支branch 机制将 Git 风格的版本数据库图数据库关系型数据库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

3大主流企业考核制度深度对比,新手避坑指南

3大主流企业考核制度深度对比,新手避坑指南

3大主流企业考核制度深度对比,新手避坑指南 复制来的考核代码跑不通,报错信息满屏飞,改了一个变量又炸了另一个?别慌,这不仅是代码逻辑的问题,更是底层选型没选对。很多新手在落地 企业考核制度…

2026/9/24 22:39:49 阅读更多 →
RTD2270CLW/RTD2280DLW VGA转LVDS驱动板原理图与设计指南

RTD2270CLW/RTD2280DLW VGA转LVDS驱动板原理图与设计指南

简介:RTD2270CLW与RTD2280DLW是瑞昱面向显示接口转换推出的芯片方案,可实现VGA模拟信号到LVDS差分信号的转换,这份PDF原理图正是围绕该方案的完整参考设计,适合显示器驱动板、工业屏适配、嵌入式显示接口转换等场景的硬件工程师参…

2026/9/23 14:51:14 阅读更多 →
Spring Task定时任务框架详解与实战指南

Spring Task定时任务框架详解与实战指南

1. Spring Task 定时任务框架解析在Java企业级开发中,定时任务调度是几乎所有系统都需要的核心功能。Spring Task作为Spring框架内置的轻量级定时任务解决方案,相比Quartz等重量级框架,具有零配置、易集成、功能完备的特点。我在电商订单超时…

2026/9/23 14:51:14 阅读更多 →

最新新闻

Python json.dumps实战:ensure_ascii与separators参数详解

Python json.dumps实战:ensure_ascii与separators参数详解

1. 项目概述1.1 一句话搞懂这行代码在干什么先直接说结论,json.dumps(filter_dict, ensure_asciiFalse, separators(,, :))这行代码干的事就是:把一个 Python 字典filter_dict序列化成 JSON 格式的字符串,同时保证中文不被转义成\uXXXX&#…

2026/9/24 22:39:37 阅读更多 →
AIGC率居高不下?8款降AIGC工具实测与三层改写流程全拆解

AIGC率居高不下?8款降AIGC工具实测与三层改写流程全拆解

最近这半年,“AIGC率”成了论文圈和作业圈避不开的词。很多专科院校和本科院校都接入了AIGC检测系统,辅导员、教学秘书那边看到的报告上,一个实验室里二十篇论文,可能有十几篇都被标了“疑似AI生成”。被标红之后,轻则…

2026/9/24 22:39:37 阅读更多 →
2026年9月投影仪选购指南:从参数到场景,一篇搞定

2026年9月投影仪选购指南:从参数到场景,一篇搞定

1. 为什么2026年9月这个时间点值得聊投影仪每年九月都是家用投影仪的黄金选购窗口,没有之一。原因很直接:上半年各家品牌该发的旗舰都发完了,价格经过一个夏天的促销已经挤掉了首发水分,而双十一的大促还没到,厂商为了…

2026/9/24 22:39:36 阅读更多 →
用Codex加速模型创新与消融实验:从问题定位到方案验证的完整工作流

用Codex加速模型创新与消融实验:从问题定位到方案验证的完整工作流

先说一个我自己体会很深的事:很多人一听到“模型创新”这四个字,第一反应就是要去改架构、换loss、堆数据集,仿佛不搞出个大新闻就不算创新。但实际上,这几年我在实际项目里做得最多、见效也最明显的,反而是先让模型在…

2026/9/24 22:39:36 阅读更多 →
神经网络基础:前馈网络、激活函数、损失函数与优化器全解析

神经网络基础:前馈网络、激活函数、损失函数与优化器全解析

1. 神经网络基础的整体设计思路与学习路径拆解1.1 为什么神经网络基础是绕不开的分水岭很多人学深度学习卡在“阶段三模块2”这个位置,不是智商问题,而是前面的线性回归、逻辑回归太顺了,到了神经网络突然冒出一堆概念:激活函数、…

2026/9/24 22:39:36 阅读更多 →
Agent Skills:让AI Agent从“有工具”到“会干活”的实战指南

Agent Skills:让AI Agent从“有工具”到“会干活”的实战指南

如果你也在折腾AI Agent,一定遇到过这种场景:模型能力很强,工具也接了一堆,可它一遇到稍微复杂的情况就掉链子,要么压根不知道该调什么,要么调了却用不对参数。我前段时间接手一个内部自动化项目&#xff0…

2026/9/24 22:38:36 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →