Electric-SQL 安装与运行指南

Electric-SQL 安装与运行指南

electric electric-sql/electric: 这是一个用于查询数据库的JavaScript库,支持多种数据库。适合用于需要使用JavaScript查询数据库的场景。特点:易于使用,支持多种数据库,具有灵活的查询构建和结果处理功能。 electric 项目地址: https://gitcode.com/gh_mirrors/el/electric

项目概述

Electric-SQL 是一个创新的数据同步解决方案,它通过在 PostgreSQL 数据库前运行一个同步服务,为应用程序提供实时数据同步能力。本文将详细介绍如何安装和运行 Electric-SQL 服务。

系统要求

在开始安装前,请确保满足以下要求:

  1. 一个可用的 PostgreSQL 数据库(版本 10 或更高)
  2. 数据库已启用逻辑复制功能
  3. 连接用户具有 REPLICATION 权限

推荐安装方式:使用 Docker

Docker 是最简单快捷的安装方式,我们提供了两种 Docker 部署方案。

方案一:使用 Docker Compose 部署完整环境

此方案会同时启动 PostgreSQL 和 Electric-SQL 服务:

  1. 首先下载 docker-compose.yaml 配置文件
  2. 执行以下命令启动服务:
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 需要满足以下条件:

  1. 逻辑复制:必须在 postgresql.conf 中启用:

    wal_level = logical
    max_replication_slots = 10
    max_wal_senders = 10
    
  2. 用户权限:连接用户需要具有 REPLICATION 权限:

    ALTER ROLE your_user WITH REPLICATION;
    

高级安装:从源代码构建

对于需要自定义开发或特定场景,可以从源代码构建 Electric-SQL。

准备工作

  1. 安装必要的工具链:

    • Elixir 1.14+
    • Erlang OTP 25+
    • Node.js 18+
    • pnpm 7+
  2. 克隆仓库并安装依赖:

    git clone https://github.com/electric-sql/electric.git
    cd electric/packages/sync-service
    mix deps.get
    

开发环境运行

  1. 配置数据库连接:

    • 编辑 .env.dev 文件设置 DATABASE_URL
    • 默认使用本地 PostgreSQL 的 electric 数据库
  2. 启动开发服务器:

    mix run --no-halt
    

测试环境

运行测试需要配置测试数据库,然后执行:

mix test

常见问题排查

  1. 连接问题:确保 DATABASE_URL 格式正确且网络可达
  2. 权限问题:验证数据库用户是否有 REPLICATION 权限
  3. PostgreSQL 配置:确认 wal_level 设置为 logical
  4. 端口冲突:检查 3000 端口是否被占用

最佳实践建议

  1. 生产环境建议使用专用的 PostgreSQL 实例
  2. 为 Electric-SQL 创建单独的数据信用户
  3. 监控数据库的复制槽使用情况
  4. 定期备份重要数据

通过以上步骤,您应该能够成功安装和运行 Electric-SQL 服务。如需进一步帮助,可以参考官方文档或加入技术社区讨论。

electric electric-sql/electric: 这是一个用于查询数据库的JavaScript库,支持多种数据库。适合用于需要使用JavaScript查询数据库的场景。特点:易于使用,支持多种数据库,具有灵活的查询构建和结果处理功能。 electric 项目地址: https://gitcode.com/gh_mirrors/el/electric

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

裘旻烁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值