gpt4 book ai didi

mysql - Rails:ActiveRecord::UnknownPrimaryKey 异常

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:14 25 4
gpt4 key购买 nike

A ActiveRecord::UnknownPrimaryKey occurred in survey_response#create:

Unknown primary key for table question_responses in model QuestionResponse.
activerecord (3.2.8) lib/active_record/reflection.rb:366:in `primary_key'

我们的应用程序一直在引发这些异常,我们不知道是什么导致了它们。异常发生在生产和测试环境中,但在任何一个环境中都不可重现。它似乎与服务器负载有某种关系,但即使在负载高峰期,一些请求仍能成功完成。该应用程序(生产环境和测试环境)是 Rails 3.2.8,ruby 1.9.3-p194,使用 MySQL 和 mysql2 gem。生产是 Ubuntu,开发/测试是 OS X。该应用程序在生产中的 Phusion Passenger 下运行。

这是一个示例堆栈跟踪:https://gist.github.com/4068400
这是有问题的两个模型, Controller 和“desc question_responses;”的输出:https://gist.github.com/4b3667a6896b60383dc3
它绝对有一个主键,这是一个标准的 rails 'id' 列。

重新启动应用服务器会暂时停止异常的发生,否则它们会在 30 分钟到 6 小时的时间段内发生,突然停止。

它总是出现在相同的 Controller 操作、表和模型上。

有没有其他人遇到过这个异常?

最佳答案

FWIW,我遇到了同样的间歇性错误,经过大量的头痛之后我找到了原因。

我们每个客户都有单独的数据库,有些客户的数据库之一在用户表上缺少主键。这意味着当该客户端访问我们的站点时,Rails 将它的内存模式更新为它连接到的数据库的模式,但缺少主键。该 Passenger 应用程序进程(或已被此客户端“感染”的任何其他进程)提供的任何 future 请求,无论该特定数据库是否具有主键,都试图访问用户表并因主键错误而失败。

最后是一个相当不言自明的错误,但是当您拥有 500 多个数据库并且只有其中一个导致问题并且是间歇性的时,很难确定。

关于mysql - Rails:ActiveRecord::UnknownPrimaryKey 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com