提问人:WyattFantana 提问时间:9/30/2023 最后编辑:WyattFantana 更新时间:9/30/2023 访问量:37
我正在寻找一种更好的方法来找出我遇到的ActiveRecord::StatementInvalid问题的根源
I'm looking for a better way to figure out the root of this ActiveRecord::StatementInvalid problem I'm having
问:
我对编码很陌生,所以请坦率地说我是个菜鸟。我有一个壁纸计算器,可以在 localhost:3000 的开发和生产环境中运行良好,但是当我部署站点时,计算器没有加载,我可以看到的唯一日志是,因为我没有在本地运行它,这是我从我托管我的应用程序的渲染日志中获得的:
Sep 29 10:56:54 PM I, [2023-09-29T21:56:54.147139 #84] INFO -- : [7596173b-1186-4b09-b9aa-135e556df481] Started GET "/wallpaper" for 172.71.151.43 at 2023-09-29 21:56:54 +0000
Sep 29 10:56:54 PM I, [2023-09-29T21:56:54.148943 #84] INFO -- : [7596173b-1186-4b09-b9aa-135e556df481] Processing by WallpaperCalcController#calculator as HTML
Sep 29 10:56:54 PM I, [2023-09-29T21:56:54.156343 #84] INFO -- : [7596173b-1186-4b09-b9aa-135e556df481] Completed 500 Internal Server Error in 7ms (ActiveRecord: 0.7ms)
Sep 29 10:56:54 PM F, [2023-09-29T21:56:54.157544 #84] FATAL -- : [7596173b-1186-4b09-b9aa-135e556df481]
Sep 29 10:56:54 PM F, [2023-09-29T21:56:54.157874 #84] FATAL -- : [7596173b-1186-4b09-b9aa-135e556df481] ActiveRecord::StatementInvalid (Could not find table 'wallpaper_calcs'):
Sep 29 10:56:54 PM F, [2023-09-29T21:56:54.158084 #84] FATAL -- : [7596173b-1186-4b09-b9aa-135e556df481]
Sep 29 10:56:54 PM F, [2023-09-29T21:56:54.158323 #84] FATAL -- : [7596173b-1186-4b09-b9aa-135e556df481] app/controllers/wallpaper_calc_controller.rb:4:in `calculator'
数据库或路由似乎没有直接问题,wallpaper_calcs表存在并且可以在控制台中访问,迁移和架构都表明该表wallpaper_calcs存在。我可以在开发和生产环境中提交计算,并且数据库分别在 development.sqlite3 和 production.sqlite3 中更新,但是,错误“找不到表'wallpaper_calcs'”在实时网站上仍然存在,我应该提到网站的其余部分工作正常,错误仅在我尝试访问计算器所在的页面时出现。
确保运行迁移: 确保我已在生产数据库上运行迁移。
数据库配置: 检查了 config/database.yml 文件中的数据库配置,以确保生产环境连接到预期的数据库。
数据库连接: 确保部署的应用程序具有正确的数据库连接配置,并具有读取和写入数据库所需的权限。
已检查文件路径: 确保 production.sqlite3 文件的路径正确且文件可访问。
检查的文件权限: 确保 Rails 应用程序具有读取和写入 production.sqlite3 文件的权限。
已检查的 Migrations/schema.rb: 仔细检查迁移,以确保它们正确定义了“wallpaper_calcs”表。
已检查的模型定义: 已确保模型 WallpaperCalc 定义正确,并且模型文件中没有拼写错误或问题。
已检查控制器操作: 已检查错误日志中指出的WallpaperCalcController中的计算器操作。鉴于我在两个数据库文件中都获得了结果,它似乎正在尝试正确访问“wallpaper_calcs”表。
检查的依赖关系: 已检查是否安装了所有 gem 和依赖项。
更改了渲染中的“开始”命令设置: 从 到
bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-production}
已检查生产.log中是否有错误消息: 查看生产.log以确定特定的错误消息和堆栈跟踪以查明问题,但根本没有错误,我唯一能够从中获得错误的日志是我从Render发布的日志。
在此过程中,我可能尝试了一些我现在无法想到的其他修复程序,但我不确定从这里开始何去何从。
答: 暂无答案
评论
ENV["DATABASE_URL"]
database.yml
rails db
.tables
select * from schema_migrations;