React项目部署Heroku推送失败报错,求分步解决及部署指导
部署失败核心原因
构建阶段执行Knex数据库迁移时无法获取PostgreSQL数据库连接:
- Heroku构建阶段不会注入应用的配置变量,你将数据库迁移放在了build脚本中,构建过程无法读取到数据库连接地址
DATABASE_URL - 未开通Heroku PostgreSQL服务,就算能读取到连接地址也没有实际可用的数据库
分步解决指南
- 开通Heroku PostgreSQL服务
进入你的Heroku应用后台,打开「资源」选项卡,搜索添加Heroku Postgres插件,选择免费的Hobby Dev规格开通即可,开通后Heroku会自动为应用生成DATABASE_URL配置变量。 - 修改package.json脚本配置
打开项目根目录的package.json,调整脚本部分如下:
{ "scripts": { // 原有其他脚本保留不变 "build": "npm run build:client", "release": "npm run knex -- migrate:latest" } } 将数据库迁移从build脚本中移除,新增的release脚本会在Heroku构建完成、新版本启动前执行,该阶段可正常读取数据库配置。 - 校验knex生产环境配置 打开`/server/db/knexfile.js`,确认production配置段格式如下: ```javascript module.exports = { // 开发、测试等其他环境配置保留不变 production: { client: 'pg', connection: process.env.DATABASE_URL, migrations: { directory: './migrations' } } }
- 重新提交代码部署
所有修改提交到GitHub仓库后,重新向Heroku推送代码即可完成部署。
内容的提问来源于stack exchange,提问作者Osama Bukhari
相关产品推荐
相关产品推荐

