我有一个使用多个sqlite3数据库的rails应用程序(该部分是不可协商的),我有以下类
class User < ActiveRecord::Base
establish_connection "users_#{Rails.env}" # use alternate DB
has_many :memberships
has_many :groups, through => :memberships
end
class Group < ActiveRecord::Base
establish_connection "users_#{Rails.env}" # use alternate DB
has_many :memberships
has_many :users, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :group
belongs_to :user
# validations stuff
establish_connection "users_#{Rails.env}" # use alternate DB
end
当我使用组创建用户时,我得到以下内容:
ActiveRecord::StatementInvalid (SQLite3::BusyException: database is locked: INSERT INTO "memberships" ...
但是当我删除“establish_connection”方法调用并使用单个默认数据库时,一切正常并且符合预期。
我已经尝试将database.yml中的超时时间增加到15秒,但同样的异常只需要更长时间才能显示。
答案 0 :(得分:0)
我也看到过这种情况。一些事情要尝试: