ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

使用 PgManage 作为 PostgreSQL GUI 管理工具管理 FerretDB 数据

2026/9/24 11:02:52 拓冰建站 浏览量
使用 PgManage 作为 PostgreSQL GUI 管理工具管理 FerretDB 数据 后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载FerretDB 是一款真正开源的 MongoDB 替代品其核心设计理念是将 MongoDB 友好、易用的查询语法映射到 PostgreSQL 后端之上因此几乎所有 PostgreSQL 生态中的管理、扩展与部署工具都能直接复用。本篇技术指南将以官方博客文档为主体讲解如何借助 CommandPrompt 出品的开源 Postgres GUI 工具PgManage完成 FerretDB 数据的管理、查询与服务器配置并辅以仓库源码与配置文件佐证关键实现细节。读者读完本文后将掌握从 Docker 搭建 FerretDB PostgreSQL 环境、写入 MongoDB 示例数据到在 PgManage 中连接并运维整套数据库的完整实战链路。PgManage为 Postgres 而生的开源 GUI 管理平台FerretDB 的一大优势在于你可以把它部署在几乎任何 PostgreSQL 管理架构之上进行管理、扩展与运维PgManage 正是其中之一。PgManage 是 CommandPrompt, Inc. 提供的开源 Postgres GUI 管理平台产品虽然仍处于持续开发阶段但已经具备相当完整的可用能力。它能查询并管理多种数据库管理系统包括PostgreSQL、MySQL、SQLite 与 Oracle。其底层构建在现已停止维护的 OmniDB 项目的优秀成果之上提供查询管理、数据库监控、服务器配置等一整套界面化操作能力。对于 FerretDB 用户与爱好者而言PgManage 可以成为管理 FerretDB 数据的理想 Postgres GUI 管理工具——你既能继续使用 MongoDB 的查询习惯写业务代码又能借助成熟的 Postgres 管理界面查看、治理底层数据。安装与设置本教程在 macOS 系统上验证通过同时也提供了适用于其他操作系统的安装方式说明。安装 PgManagePgManage 的安装指南详细列出了 Mac、Windows 与 Linux 系统各自不同的安装选项。需要注意的是在desktop-app桌面应用模式下PgManage 无需注册任何账号只需要设置一个用于凭据加密的master password主密码即可开始使用。设置 FerretDBFerretDB 侧我们采用官方文档中的 Docker 快速启动方案但需要对docker-composeYAML 文件做几处关键调整暴露 Postgres 端口通过端口转发将5432端口开放出来使其能在容器外部被访问这样像 PgManage 这样的应用程序才能直接连接更新认证凭据务必同步修改用户名与密码的认证信息。调整后的docker-compose.yml完整示例如下services: postgres: image: postgres environment: - POSTGRES_USERusername - POSTGRES_PASSWORDpassword - POSTGRES_DBferretdb volumes: - ./data:/var/lib/postgresql/data ports: - 5432:5432 ferretdb: image: ghcr.io/ferretdb/ferretdb restart: on-failure ports: - 27017:27017 environment: - FERRETDB_POSTGRESQL_URLpostgres://postgres:5432/ferretdb networks: default: name: ferretdb随后执行docker compose up -d即可启动全部服务。从源码角度看FERRETDB_POSTGRESQL_URL正是 FerretDB 连接后端 PostgreSQL 的核心环境变量。在仓库的部署文件中可以看到同样的使用模式例如 build/ferretdb.service 中配置为EnvironmentFERRETDB_POSTGRESQL_URLpostgres://127.0.0.1:5432/postgres而 build/ferretdb/evaluation/entrypoint.sh 中则将其与POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB等环境变量动态拼接export FERRETDB_POSTGRESQL_URLpostgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD}127.0.0.1:5432/${POSTGRES_DB}。可见该变量的构成约定为postgres://用户名[:密码]主机:端口/数据库名其中5432是 FerretDB 默认连接的 PostgreSQL 端口。仓库根目录的 docker-compose.yml 还展示了更贴近开发环境的配置参考同样将5432端口映射到宿主机并设置POSTGRES_USERpg-user、POSTGRES_PASSWORDpg-pass等凭据变量同时通过-c max_connections400等 Postgres 启动参数调整连接容量——这些经验都可以迁移到你的自定义 compose 文件中。FerretDB 中的基本操作FerretDB 使你能够执行 MongoDB 的查询与命令并将数据存储到 Postgres 中。为了演示我们向 FerretDB 数据库写入一批示例数据。如果你本机装有mongosh可直接使用以下连接 URI替换为正确的认证凭据连接 FerretDBmongodb://username:password127.0.0.1/ferretdb?authMechanismPLAIN如果没有安装mongosh也可以通过临时 MongoDB 容器来运行docker run --rm -it --networkferretdb --entrypointmongosh mongo \ mongodb://username:passwordferretdb/ferretdb?authMechanismPLAIN连接字符串中需要指定authMechanismPLAIN即明文密码认证机制这是 FerretDB 为简化 Docker 场景认证而支持的方式此外请确认容器加入了与 compose 文件一致的ferretdb网络以便通过服务名ferretdb解析到 FerretDB 容器。接下来向testdata集合插入两条示例数据终端输出大致如下$ docker run --rm -it --networkferretdb --entrypointmongosh mongo \ mongodb://username:passwordferretdb/ferretdb?authMechanismPLAIN Current Mongosh Log ID: 64e7657774614fd82dd9853c Connecting to: mongodb://credentialsferretdb/ferretdb?authMechanismPLAINdirectConnectiontrueappNamemongosh1.10.1 Using MongoDB: 6.0.42 Using Mongosh: 1.10.1 For mongosh info see: https://docs.mongodb.com/mongodb-shell/ To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy). You can opt-out by running the disableTelemetry() command. ------ The server generated these startup warnings when booting 2023-08-24T14:13:12.343Z: Powered by FerretDB v1.8.0 and PostgreSQL 15.4. 2023-08-24T14:13:12.343Z: Please star us on GitHub: https://github.com/FerretDB/FerretDB. 2023-08-24T14:13:12.343Z: The telemetry state is undecided. 2023-08-24T14:13:12.344Z: Read more about FerretDB telemetry and how to opt out at https://beacon.ferretdb.io. ------ ferretdb db.testdata.insertMany([{a: b, b: 34}, {a: c, b: [3, 5]}]) { acknowledged: true, insertedIds: { 0: ObjectId(64e765e074614fd82dd9853d), 1: ObjectId(64e765e074614fd82dd9853e) } }从启动日志可以看到本次会话由 FerretDB 与 PostgreSQL 15.4 共同支撑这也印证了FerretDB 协议兼容层 Postgres 存储引擎的分层架构。插入成功后返回的两条ObjectId即为文档的 MongoDB 风格唯一标识。连接 PgManage 与 FerretDB使用上面暴露出来的 Postgres 端口5432配合该用户的认证凭据即可在 PgManage 中连接ferretdb数据库。具体步骤登录 PgManage 后切换到Connections连接选项卡点击Manage connections管理连接随后添加一条新连接。填写完毕后先测试连接Test the connection以确保成功再保存更改。连接建立后PgManage 就能访问ferretdb数据库中的全部数据。如下图所示PgManage 会展示ferretdb中的全部数据库与表。要查看刚写入的示例数据可以导航到ferretdb数据库在本例中即ferretdbschema然后查询testdata表中的全部数据。此时在 PgManage 中能看到数据的JSONB 视图——这正是 FerretDB 将 BSON 文档映射到 Postgres 的典型呈现方式MongoDB 侧以 BSON 存储的嵌套结构如{a: c, b: [3, 5]}中的数组b在 Postgres 中会被保存为 JSONB 类型便于保持文档的完整语义。使用 PgManage 为 FerretDB 执行服务器配置借助 PgManage用户可以便捷地管理数据库、访问并修改服务器配置同时充分利用其友好的用户界面与直接的ALTER SYSTEM命令支持。这种直截了当的方式免去了手动编辑postgresql.conf文件的麻烦。操作方法是在数据库对象树中右键单击根节点然后从下拉菜单中选择Server configuration服务器配置。随后即可像在普通 PostgreSQL 数据库中一样在 PgManage 界面内配置各项服务器设置。此外用户还可以借助 PgManage 的Config History配置历史下拉菜单追踪每一次配置变更并在需要时回退到之前的版本——这为 FerretDB 底层 Postgres 实例的调优提供了可审计、可回滚的安全保障。结论FerretDB 让用户既能享受 MongoDB 友好易用的查询语法又能获得 PostgreSQL 后端的可靠性与健壮性——两者兼得。而对于 PostgreSQL 管理员来说PgManage 是管理 FerretDB 数据库的得力工具它提供了一个直观的界面来管理、扩展和配置你的服务器。关于 FerretDB 的更多信息可参阅仓库的 README、官方文档以及 GitHub 主页。无论你是 MongoDB 开发者希望透视底层存储还是 PostgreSQL DBA 希望用熟悉的工具接管 MongoDB 工作负载这套 FerretDB PgManage 的组合都值得一试。赞分享后端数据库文档数据库【免费下载链接】FerretDBA truly Open Source MongoDB alternative项目地址https://gitcode.com/gh_mirrors/fe/FerretDB点击查看免费下载相关推荐Mathesar基于PostgreSQL的数据管理工具Mathesar基于PostgreSQL的数据管理工具 1. 项目介绍 Mathesar是一款开源的数据管理工具它提供了一个类似电子表格的界面允许不同技术数据库后端前端协作RedisDesktopManagerRedis数据库管理的终极GUI工具RedisDesktopManagerRedis数据库管理的终极GUI工具 RedisDesktopManager现更名为RESP.app是一个跨平台的开数据库客户端桌面应用LiteDB Studio 使用教程轻量级NoSQL数据库的GUI管理工具LiteDB Studio 使用教程轻量级NoSQL数据库的GUI管理工具 项目介绍 LiteDB Studio 是一个专门为 LiteDB v5 设计的图形桌面应用数据库客户端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考