Rake 和 Rails 控制台抛出 Postgres 异常

Rake and Rails console throwing Postgres exception

提问人:Adolfo Carpio 提问时间:7/31/2023 最后编辑:smathyAdolfo Carpio 更新时间:8/1/2023 访问量:44

问:

我们有一个在 Ubuntu 22.04 TLS(rbenv 1.2.0、ruby 2.1.10、pg gem 4.0.1、Postgres 10)上运行的旧版 Rails 4.1 应用程序可以正常运行,但 Rake (12.3.3) 和 Rails c(访问 ActiveRecord 对象时)始终在 .rbenv/versions/2.1.10/lib/ruby/gems/2.1.0/gems/activerecord-4.0.1/lib/active_record/connection_adapters/postgresql_adapter.rb:831 处转储核心并出现分段错误。

Rails 日志显示了几个月前成功的迁移运行和一些弃用警告(活动记录whitelist_attributes,从那时起就已修复,其他未修复但据我们所知与数据库操作无关)。

如果 Rails 和 Rake(或用于访问 ActiveRecord 对象时使用 rails c)之间出现这种行为差异的可能原因,谁能指出它们都使用相同的 activerecord gem 的可能原因?

任何帮助将不胜感激。

Ruby-on-Rails PostgreSQL Ruby-on-Rails-4 子 ruby-2.1

评论

1赞 smathy 8/1/2023
我没看错,您正在使用 Rails 4.1 并以某种方式使用 ActiveRecord 4.0.1?我的意思是,除了所有其他“不受支持的软件”危险信号之外,这是一个相当大的危险信号。
1赞 smathy 8/1/2023
另外,你说你正在使用“pg gem 4.0.1”——这并不存在。如果你想要“你需要升级”响应以外的任何东西,那么在这里的版本中保持准确性将是至关重要的。
0赞 Adolfo Carpio 8/1/2023
我的错误。pg gem 为 0.21.0(也尝试使用 0.20.0,结果相同),Active Record gem 为 4.0.1,而 Rails 为 4.0.1。但主要问题是,如果 Rails 都使用相同的 ActiveRecord gem,为什么它们会正常工作而 Rake 核心转储。
0赞 smathy 8/1/2023
好吧,答案是,从来没有人测试过 10 年前的 Rails 在全新的 Ubuntu 上托管的 7 年前的 ruby 上拥有 6 年的 pg。所以你在未知的水域,如果有什么办法,那是偶然的。
0赞 Adolfo Carpio 8/1/2023
好的,谢谢。也许其他人有不同的观点?

答: 暂无答案