logo
icon

PostgreSQL

强大、可靠的开源对象关系型数据库,具备丰富功能、ACID 合规与严格的数据完整性。

template cover
部署次数9647
发布者zeaburZeabur
创建于2024-06-18
模版内的服务
service icon
标签
Database

部署 PostgreSQL

PostgreSQL(常称 Postgres)是强大的开源对象关系型数据库系统,以可靠性、丰富功能以及对 SQL 标准的遵循而广受好评。它非常适合需要复杂查询、ACID 合规以及严格数据完整性的应用场景。

Zeabur 让关系型数据库的管理变得轻松。通过 Zeabur,你可以在几秒钟内启动一个可用于生产环境的 PostgreSQL 实例,无需处理复杂的配置文件、存储卷或服务器维护。

你将学到什么

在本教程中,我们将带你完成:

  1. 从 Zeabur Marketplace 部署 PostgreSQL 服务
  2. 使用 TablePluspgAdminpsql 等外部工具连接数据库
  3. 将已部署的后端应用连接到 PostgreSQL

阶段 1:部署数据库

步骤 1:创建 PostgreSQL 服务

Zeabur 提供“一键部署”,因此你很少需要手动配置复杂参数。

选项 1:从项目页面创建 PostgreSQL 实例

  1. 登录 Zeabur Dashboard
  2. 点击 "New Project"
  3. 选择 "Template"(Marketplace)。
  4. 搜索 PostgreSQL
  5. 选择官方 PostgreSQL 镜像,服务会立即开始部署。

选项 2:从模板页面创建 PostgreSQL 实例

  1. 登录 Zeabur Dashboard
  2. 选择 FeaturesTemplate
  3. 选择或搜索 PostgreSQL
  4. 选择 PostgreSQL(通常是官方镜像),点击 deploy 开始部署。

步骤 2:获取连接凭据

  1. 进入服务的 Instruction 标签页。
  2. 找到 "Connection" 区域,你会看到两类信息:
    • Public (External): 用于 VS Code / 本地应用
    • Private (Internal): 用于已部署的应用
  3. Public 区域记录以下信息:
    • Host:(例如 postgres.zeabur.app
    • Port:(通常是 5432 或随机端口)
    • Username:(默认通常是 rootpostgres
    • Password:(点击“眼睛”图标显示)
    • Database:(默认是 postgres

阶段 2:连接数据库

前置条件:准备 Public 连接信息

在打开任何工具之前,请先从 Zeabur Dashboard 准备好连接信息。

  1. 打开 Zeabur 中的 PostgreSQL 服务。
  2. 点击 Instruction 标签页。
  3. "Public"(External)区域可以看到:
    • Connection String
    • PostgreSQL Connect Command
    • PostgreSQL username
    • PostgresSQL password
    • PostgresSQL database
    • PostgreSQL host
    • PostgreSQL port

选项 1:使用 VS Code(SQLTools)连接

适合:希望在同一个窗口里写代码并查看数据库的开发者。

步骤 1:安装扩展

  1. 打开 VS Code 或任意兼容的编辑器。
  2. 点击左侧栏的 ExtensionsCtrl+Shift+XCmd+Shift+X)。
  3. 搜索并安装:SQLTools
  4. 搜索并安装驱动:SQLTools PostgreSQL/Cockroach Driver

步骤 2:创建连接

  1. 点击左侧栏出现的 SQLTools 图标(数据库圆柱)。
  2. 悬停在 “Connections”,点击 "Add New Connection"(带 + 的圆柱图标)。
  3. 选择 PostgreSQL

步骤 3:配置参数 使用 Zeabur 的信息填写表单:

  • Connection Name: Zeabur DB(或任意)
  • Connect using: Server and Port
  • Server Address (Host): 填入 Postgresql Host
  • Port: 填入 Postgresql Port
  • Database: 填入 Postgresql Database(通常为 postgres
  • Username: 填入 Postgresql User
  • Password: 填入 Postgresql Password
  • SSL: 保持默认(若连接失败可选 "Require")

步骤 4:测试并连接

  1. 点击 "Test Connection",看到 “Successfully Connected” 即成功。
  2. 点击 "Save Connection"
  3. 在侧边栏右键连接并选择 "Connect"
  4. 现在你可以展开树结构查看 TablesViewsFunctions

选项 2:使用 pgAdmin 4(官方 GUI)连接

适合:使用标准开源管理界面进行更全面的数据库管理。

步骤 1:安装 pgAdmin

  1. 下载并安装 pgAdmin 4
  2. 打开 pgAdmin 4。(注:在浏览器中打开属于正常现象)

步骤 2:注册服务器

  1. 在左侧树形栏中右键 Servers
  2. 选择 Register > Server...

步骤 3:填写凭据 将弹出窗口。你需要填写这些标签页:

  • Tab 1: General
    • Name: 自定义名称(例如 Zeabur App DB
  • Tab 2: Connection
    • Host name/address: 填入 Postgresql Host
    • Port: 填入 Postgresql Port
    • Maintenance database: 填入 Postgresql Database(通常 postgres
    • Username: 填入 Postgresql User(通常 root
    • Password: 填入 Postgresql Password
    • 可选: 勾选 “Save Password”
  • Tab 3: Parameters(可选)
    • 若遇到 SSL 错误,请到 SSL 标签页将 “SSL mode” 设为 RequirePrefer

步骤 4:连接

  1. 点击蓝色 Save
  2. 数据库将出现在左侧列表中。
  3. 点击服务器名旁的 > > Databases > postgres > Schemas > public > Tables 查看数据。

阶段 3:连接你的应用(服务间互连)

当你把应用部署到 Zeabur 时,它需要与此数据库通信。建议使用 Private Networking 以获得更好的安全性和性能。

方法 A:简单方式(环境变量)

Zeabur 会自动向同一项目中的其它服务暴露连接字符串。在你的应用服务设置中:

  1. 打开 Variables 标签页。

  2. 新增变量 DATABASE_URL(或你的代码使用的名称)。

  3. 值使用 Zeabur 引用变量:会自动带入安全的内部连接字符串

    ${POSTGRES_CONNECTION_STRING}
    
    

方法 B:手动方式(指定变量)

如果你需要连接信息的某些字段(或有多个 DB),可使用:

  • Host: ${POSTGRES_HOST}(内部主机名,通常以 .zeabur.internal 结尾)
  • Port: ${POSTGRES_PORT}
  • User: ${POSTGRES_USERNAME}
  • Password: ${POSTGRES_PASSWORD}

注意:如果项目里有多个 PostgreSQL 实例,引用变量可能不可靠。此时建议从 Networking 标签页手动复制 “Internal” 的 Hostname 和 Port。


阶段 4:维护与备份

配置(进阶)

如果你需要调整某些数据库设置(例如内存限制或日志):

  1. 在 Zeabur 打开 Config Editor
  2. 编辑 /etc/postgresql/postgresql.conf
  3. 提示:Zeabur 已预先配置关键参数,通常不需要修改。

恢复备份

Zeabur 会自动备份。恢复步骤如下:

  1. 下载: 从 Zeabur 的备份存储下载并解压备份文件,你会获得 data.sql

  2. 准备: 确保本地已安装 PostgreSQL 客户端工具。

  3. 执行: 在 Instructions 中找到 "PostgreSQL Connect Command" 并在终端执行。示例: psql -h postgres.zeabur.app -p 5432 -U root postgres < data.sql

    <Your PostgreSQL Connect Command> < data.sql
    
    

警告:恢复备份会覆盖现有数据并替换用户密码。如需保留当前密码,请在执行前从 data.sql 中移除 CREATE ROLE 与 ALTER ROLE 语句。