Railway 上的数据库和应用一样是一个服务,放在同一个项目里,通过私有网络连接。下面以 PostgreSQL 为例,MySQL、Redis、MongoDB 的做法基本相同。
一、添加数据库
在项目画布上点 + New(或按 Ctrl / Cmd + K),选 Database → PostgreSQL。几秒后画布上多出一个 Postgres 服务,带一个存储卷保存数据。
它用的是官方 Postgres 镜像加上 SSL 的版本,默认只能在项目内部访问。
二、把连接串传给应用
Postgres 服务会生成这些变量:PGHOST、PGPORT、PGUSER、PGPASSWORD、PGDATABASE、DATABASE_URL。
在应用服务的 Variables 里新建变量,值写成引用:
DATABASE_URL=${{Postgres.DATABASE_URL}}
Postgres 是数据库服务的名字,改过名就换成新名字。引用变量的好处是数据库密码变了,应用这边自动同步。保存后点 Deploy 生效。
三、用私有网络,别用公网地址
应用连数据库一定要用 DATABASE_URL(私有网络),不要用 DATABASE_PUBLIC_URL。公网地址走 TCP 代理,每次查询都算出站流量,按 $0.05 / GB 计费。私有网络不收流量费,速度也更快。
四、从本地连接数据库
需要用 TablePlus、DBeaver 这类工具从本机连接时:
- 打开 Postgres 服务的 Settings → Networking;
- 添加 Public Access,会生成 TCP 代理和
DATABASE_PUBLIC_URL; - 用这个地址连接。
用完可以关掉公网访问。也可以用 CLI 的 railway connect 直接打开数据库命令行。
五、备份
Railway 有内置的存储卷备份功能,在数据库服务的存储卷设置里开启。正式上线的项目建议开启定期备份。
在 Railway 部署数据库 → 数据库按实际占用的 CPU、内存和存储计费,同样计入每月含的用量。
六、费用怎么算
数据库和其他服务一样按 CPU、内存、存储卷计费:存储卷 $0.15 / GB / 月。Hobby 的存储卷上限是 5 GB,需要更大的空间要升级 Pro。更完整的算法见账单计算说明。