Rails 7部署Heroku遇ActiveRecord::ConnectionNotEstablished错误
Rails 7 博客切换PostgreSQL后本地警告与Heroku连接问题解决
本地PG::Coder.new(hash)弃用警告处理
- 锁定pg gem版本到1.4.6,适配Rails 7的默认兼容逻辑:
修改Gemfile中的pg gem声明:gem 'pg', '~> 1.4.6'
执行命令更新依赖:bundle install - 若不想降级gem,可升级Rails到7.0.8及以上版本,新版本已修复该兼容问题。
Heroku上ActiveRecord::ConnectionNotEstablished错误排查
- 确认Heroku已创建PostgreSQL实例:
执行命令:heroku addons:create heroku-postgresql:hobby-dev(未创建时执行) - 检查
config/database.yml的production配置:
确保production环境仅使用DATABASE_URL环境变量,配置如下:
不要添加host、username、password等硬编码配置,避免覆盖Heroku自动注入的环境变量。production: url: <%= ENV['DATABASE_URL'] %> pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> - 执行Heroku数据库迁移:
部署代码后,运行命令:heroku run rails db:migrate,确保数据库表结构正常生成。 - 重启Heroku应用进程:
执行命令:heroku restart,让配置变更生效。 - 检查数据库实例状态:
执行命令:heroku pg:info,确认数据库处于可用状态,连接数未超限。
内容的提问来源于stack exchange,提问作者AntMar
相关产品推荐
相关产品推荐

