Electric-SQL 安装与运行指南
项目概述
Electric-SQL 是一个创新的数据同步解决方案,它通过在 PostgreSQL 数据库前运行一个同步服务,为应用程序提供实时数据同步能力。本文将详细介绍如何安装和运行 Electric-SQL 服务。
系统要求
在开始安装前,请确保满足以下要求:
- 一个可用的 PostgreSQL 数据库(版本 10 或更高)
- 数据库已启用逻辑复制功能
- 连接用户具有 REPLICATION 权限
推荐安装方式:使用 Docker
Docker 是最简单快捷的安装方式,我们提供了两种 Docker 部署方案。
方案一:使用 Docker Compose 部署完整环境
此方案会同时启动 PostgreSQL 和 Electric-SQL 服务:
- 首先下载 docker-compose.yaml 配置文件
- 执行以下命令启动服务:
curl -O https://electric-sql.com/docker-compose.yaml
docker compose up
这个配置文件已经预设了合理的默认值,包括:
- PostgreSQL 容器
- Electric-SQL 容器
- 必要的环境变量配置
- 网络连接设置
方案二:连接现有 PostgreSQL 数据库
如果已有 PostgreSQL 数据库,可以单独运行 Electric-SQL 服务:
docker run \
-e "DATABASE_URL=postgresql://username:password@host:port/database" \
-p 3000:3000 \
-t \
electricsql/electric:latest
注意替换 DATABASE_URL 中的连接信息为实际的数据库连接参数。
PostgreSQL 配置要求
要使 Electric-SQL 正常工作,PostgreSQL 需要满足以下条件:
-
逻辑复制:必须在 postgresql.conf 中启用:
wal_level = logical max_replication_slots = 10 max_wal_senders = 10
-
用户权限:连接用户需要具有 REPLICATION 权限:
ALTER ROLE your_user WITH REPLICATION;
高级安装:从源代码构建
对于需要自定义开发或特定场景,可以从源代码构建 Electric-SQL。
准备工作
-
安装必要的工具链:
- Elixir 1.14+
- Erlang OTP 25+
- Node.js 18+
- pnpm 7+
-
克隆仓库并安装依赖:
git clone https://github.com/electric-sql/electric.git cd electric/packages/sync-service mix deps.get
开发环境运行
-
配置数据库连接:
- 编辑
.env.dev
文件设置 DATABASE_URL - 默认使用本地 PostgreSQL 的 electric 数据库
- 编辑
-
启动开发服务器:
mix run --no-halt
测试环境
运行测试需要配置测试数据库,然后执行:
mix test
常见问题排查
- 连接问题:确保 DATABASE_URL 格式正确且网络可达
- 权限问题:验证数据库用户是否有 REPLICATION 权限
- PostgreSQL 配置:确认 wal_level 设置为 logical
- 端口冲突:检查 3000 端口是否被占用
最佳实践建议
- 生产环境建议使用专用的 PostgreSQL 实例
- 为 Electric-SQL 创建单独的数据信用户
- 监控数据库的复制槽使用情况
- 定期备份重要数据
通过以上步骤,您应该能够成功安装和运行 Electric-SQL 服务。如需进一步帮助,可以参考官方文档或加入技术社区讨论。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考