You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地PostgreSQL连接至Heroku上部署的Spring Boot站点

问题根源分析
  • Heroku云端应用无法访问本地PostgreSQL数据库(本地数据库默认仅内网可见,无公网暴露情况下云端服务无法连接),这是页面为空的核心原因。
  • 迁移Heroku数据库失败,大概率是连接配置错误、数据导入步骤不当,或是未正确启用Heroku Postgres插件。
Heroku Postgres连接配置步骤

1. 启用Heroku Postgres插件

本地终端执行(需已安装Heroku CLI并完成登录):

heroku addons:create heroku-postgresql:hobby-dev -a 你的应用名称

此命令会为应用分配一个免费的Postgres实例。

2. 配置Spring Boot连接参数

Spring Boot可直接读取Heroku提供的DATABASE_URL环境变量,无需手动写死配置。在application.properties或application.yml中添加以下内容:

application.properties:

spring.datasource.url=${DATABASE_URL}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=${SPRING_DATASOURCE_USERNAME:}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD:}
# JPA/Hibernate补充配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

application.yml:

spring:
  datasource:
    url: ${DATABASE_URL}
    driver-class-name: org.postgresql.Driver
    username: ${SPRING_DATASOURCE_USERNAME:}
    password: ${SPRING_DATASOURCE_PASSWORD:}
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect

注:Heroku会自动解析DATABASE_URL为对应用户名、密码、地址等信息,Spring Boot可直接识别该变量。

3. 迁移本地数据到Heroku Postgres

若本地有数据需迁移,执行以下步骤:

  1. 导出本地数据库备份:
pg_dump -U 本地用户名 -d 本地数据库名 > backup.sql
  1. 将备份文件导入Heroku Postgres:
heroku pg:psql -a 你的应用名称 < backup.sql

若导入报错,检查备份文件是否包含本地特有配置(如自定义角色、本地文件路径),清理后再重试。

常见问题排查
  • 确认Heroku Postgres插件已启用:执行heroku addons -a 你的应用名称,查看是否存在heroku-postgresql条目。
  • 查看应用日志定位连接错误:执行heroku logs --tail -a 你的应用名称,搜索SQLException或Connection refused相关日志。
  • 检查Spring Boot依赖:确保pom.xml或build.gradle包含PostgreSQL驱动:

Maven:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

Gradle:

runtimeOnly 'org.postgresql:postgresql'

内容的提问来源于stack exchange,提问作者icarus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:24:28