You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matrix Synapse技术咨询:数据库Schema获取及PostgreSQL远程访问

问题解答

1. 获取Matrix Synapse完整数据库Schema

  • Synapse的数据库Schema通过Alembic迁移脚本维护,所有表结构的定义与变更记录都存放在Synapse项目的 synapse/storage/schema 目录下,目录内的.py迁移文件和.sql脚本包含了从初始版本到当前版本的完整Schema演进逻辑。
  • 若你已部署运行中的Synapse实例,最直接准确的方式是连接到PostgreSQL后执行 \d 命令查看所有表结构,或用 pg_dump -s -d synapse 命令导出当前实例的完整Schema(将synapse替换为你的实际数据库名),这能得到适配你当前Synapse版本的精准Schema。

2. 实现远程直接访问PostgreSQL数据库

排查Nginx影响

Nginx默认不会拦截PostgreSQL的默认端口(5432),除非你手动在Nginx配置中添加了针对该端口的转发或拦截规则。可检查服务器上的Nginx配置文件(通常在 /etc/nginx/conf.d/ 或 /etc/nginx/sites-enabled/ 目录下),确认是否存在涉及5432端口的规则,若有则删除或调整。

配置PostgreSQL允许远程访问

  1. 修改PostgreSQL配置文件 postgresql.conf(通常路径为 /var/lib/postgresql/<版本号>/main/postgresql.conf):
    • 找到 listen_addresses 参数,改为 '*'(允许所有IP访问),或指定你的远程机器IP,比如 '192.168.1.100'。
  2. 修改访问控制文件 pg_hba.conf(同目录下):
    • 添加一行规则允许远程IP访问,示例:
      host    all             all             192.168.1.100/32        scram-sha-256
      
      将192.168.1.100/32替换为你的远程机器IP,scram-sha-256是PostgreSQL 10+推荐的认证方式,版本较低可改用md5。
  3. 重启PostgreSQL服务:
    sudo systemctl restart postgresql
    

配置服务器防火墙

开放PostgreSQL端口给远程IP,以ufw为例:

sudo ufw allow from 192.168.1.100 to any port 5432
sudo ufw reload

使用iptables则执行对应规则开放端口即可。

测试连接

在远程机器上执行以下命令测试连接:

psql -h <服务器IP> -U <数据库用户名> -d synapse

输入密码后即可连接,执行SQL命令进行表修改、数据插入等操作。

内容的提问来源于stack exchange,提问作者Ruven JR. Maerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:25:09