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

将Rails应用部署到Fly.io时出现PG::UndefinedTable错误:trips表不存在

Rails部署Fly.io后PostgreSQL表不存在问题解决

1. 生产环境未执行数据库迁移

本地的rails db:reset只作用于本地开发/测试数据库,Fly.io的生产库是独立的,必须远程执行迁移:

  • 执行fly ssh console进入远程应用控制台
  • 在控制台内运行rails db:migrate RAILS_ENV=production
  • 也可以直接用Fly命令快速执行:fly run rails db:migrate

2. 修正database.yml生产环境配置

你的production配置继承了default中的host: localhost,但Fly.io的PostgreSQL数据库并非本地主机,正确做法是使用Fly自动注入的DATABASE_URL环境变量:
修改production段配置为:

production:
  <<: *default
  url: <%= ENV["DATABASE_URL"] %>

同时移除production段内单独的database、username、password配置,避免与DATABASE_URL的连接信息冲突。

3. 确认Fly.io数据库实例关联状态

  • 执行fly postgres list查看是否已创建PostgreSQL实例
  • 若未创建,先执行fly postgres create创建实例,再用fly postgres attach <你的postgres实例名>关联到应用

4. 验证生产数据库表结构

  • 执行fly pg connect进入远程数据库控制台
  • 输入\dt查看所有表,若没有trips表,说明迁移未成功,检查迁移文件语法或迁移执行日志排查问题

内容的提问来源于stack exchange,提问作者João Gabriel Dal Forno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:52:10