JillionDB
文档实时数据库

文档

实时数据库

连接你的真实数据库,JillionDB 就能在它与 JillionDB 不一致时告诉你。适用于专业版和企业版。

它做什么

JillionDB 读取你的 PostgreSQL 或 MySQL 数据库的表定义,并与项目中的结构进行比较。如果有人在 JillionDB 之外修改了数据库,或者已批准的更改尚未执行,你会看到用通俗语言描述的每一处差异。

创建一个无法读取数据的登录账号

以管理员身份在你的数据库上运行一次。请替换为你自己的数据库名称和一个较长的密码。

PostgreSQL(Neon、Supabase、Amazon RDS 等):

CREATE ROLE jilliondb_reader LOGIN PASSWORD 'choose-a-long-password';
GRANT CONNECT ON DATABASE your_database TO jilliondb_reader;
GRANT USAGE ON SCHEMA public TO jilliondb_reader;

MySQL:

CREATE USER 'jilliondb_reader'@'%' IDENTIFIED BY 'choose-a-long-password';
GRANT REFERENCES ON your_database.* TO 'jilliondb_reader'@'%';

PostgreSQL 允许任何登录账号读取表定义,而 MySQL 的 REFERENCES 权限可以显示表定义但不允许读取数据,所以这两个账号都看不到你的数据。

连接

  1. 打开项目,点击工具栏中的数据库按钮。
  2. 粘贴服务商提供的连接字符串(使用上面的账号),或逐项填写。
  3. 选择加密方式:Neon、Supabase 和大多数托管数据库选 加密并校验证书;使用自有证书的服务商(例如 Amazon RDS)选 仅加密。
  4. 点击 连接并检查。JillionDB 会读取数据库并显示是否一致。

出现差异时

列表显示 JillionDB 为匹配你的数据库需要做的更改。点击 让 JillionDB 与之匹配 即可同步项目;当前结构会先保存为一个版本,方便恢复。如果落后的是数据库,请照常执行迁移,然后点击 立即检查。

开启自动检查时,JillionDB 每隔几小时检查一次;距上次检查超过一小时后打开项目时也会检查。

无法连接时

如果你的数据库只接受特定 IP 地址,请允许 162.254.39.64。JillionDB 无法访问私有网络中的数据库,请使用服务商提供的公网地址。

私有、本地和 SQLite 数据库:桥接程序

如果 JillionDB 无法访问你的数据库(它在你的电脑上、在私有网络中,或是一个 SQLite 文件),请改用桥接程序。它是一个小型开源命令,在数据库所在的地方读取表定义,并只把这些定义发送给 JillionDB。数据库密码不会离开你的电脑,JillionDB 也从不主动连入。

  1. 打开项目,点击数据库按钮,选择 运行桥接程序。
  2. 点击 创建令牌 并复制。它只允许桥接程序向这个项目发送表定义。
  3. 在能访问数据库的地方运行命令,换成你自己的连接字符串或 SQLite 文件路径。
npx jilliondb push --token jdbb_… --url postgresql://user:password@localhost:5432/app

结果会立即显示在终端和项目中。加上 --watch 可持续运行并每 15 分钟发送一次;也可以在每次部署后于 CI 中运行,并加上 --fail-on-drift,在数据库与 JillionDB 不一致时让构建失败。加上 --print 可查看将要发送的确切内容,而不实际发送。

桥接程序需要 Node 20 或更高版本,读取 SQLite 文件需要 Node 22.13 或更高版本。也可以用 JILLIONDB_TOKEN 设置令牌、用 DATABASE_URL 设置数据库,而不必写在命令里。

断开连接

在同一窗口点击 断开连接。JillionDB 会删除保存的登录信息并停止检查。在此之前,密码一直加密保存。你也可以随时在数据库中删除这个账号。