edgedb 内部pg 数据存储的探索 (一)基本环境搭建

edgedb 是基于pg 上的对象关系数据库,已经写过使用docker 运行的demo,为了探索内部的原理,做了一下尝试,开启pg 访问
后边会进一步的学习

环境准备

为了测试,使用yum 安装

  • 安装
sudo tee <<'EOF' /etc/yum.repos.d/edgedb.repo
[edgedb]
name=edgedb
baseurl=https://packages.edgedb.com/rpm/el$releasever/
enabled=1
gpgcheck=1
gpgkey=https://packages.edgedb.com/keys/edgedb.asc
EOF
sudo yum install edgedb-1-alpha1
  • 修改配置探索
    因为edgedb 基于python 开发,同时后端是基于pg 的,通过查找源码,发现在server/main.py 中有pg 启动的处理,如下,所以
    通过修改listen_addresses=0.0.0.0, 端口没有固定,是自动随机生成的

  • 修改配置
    通过locate 查找main.py 路径如下
locate main.py
/usr/lib/python2.7/site-packages/compose/cli/main.py
/usr/lib/python2.7/site-packages/compose/cli/main.pyc
/usr/lib64/edgedb-1-alpha1/lib/python3.7/site-packages/edb/server/main.py

直接修改main.py 中的 run_server 方法中pg 的启动参数

  • 启动edgedb
systemctl start edgedb-1-alpha1.service
  • 查看启动参数
ps -ef |grep postgres

效果如下,发现成功了

/usr/lib64/edgedb-1-alpha1/bin/postgres 
-D /var/lib/edgedb/1-alpha1/data/ --port=50200 
-c log_connections=yes -c log_statement=all -c log_disconnections=yes -c log_min_messages=INFO 
-c client_min_messages=INFO -c listen_addresses=0.0.0.0 -c unix_socket_permissions=0700 
-c TimeZone=UTC -c default_transaction_isolation=repeatable read -c max_connections=500 
-c unix_socket_directories=/var/lib/edgedb/1-alpha1/data/
  • 连接测试
psql -U postgres -p 50200 -h localhost

效果如下,成功了

 psql -U postgres -p 50200 -h localhost
psql (11.2)
输入 "help" 来获取帮助信息.

postgres=#
  • edgedb 数据表结构

以下是一张简单的图

说明

这个只是分析的开端,开启的pg 的访问,后边结合edgedb 的操作语言,分析pg 中数据的存储方式

参考资料

https://edgedb.com/download?distro=linux

posted on   荣锋亮  阅读(567)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-04-18 phoenix elixir 框架简单试用
2016-04-18 Netflix Zuul 了解
2014-04-18 gridview 合并单元格 并原样导出数据
2014-04-18 转 oracle 学习- 用户权限角色

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示