-
Notifications
You must be signed in to change notification settings - Fork 21.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AR queries non-existent tables on schema:load since 3.2.12 #9304
Comments
Here's the culprit commit: 921a296 |
related to #9290 |
I have a similar problem, using models with different connections other than default "development"/"production", e.g.: class Crm::User < ActiveRecord::Base
establish_connection :crm
end
Crm::User.where("id = 1") # runs fine!
Crm::User.where(id: 1) # breaks!
The predicate builder looks inside development.users, but the memberships table is only available in the crm.user database, as specified in the Base class. |
[triage] CC @tenderlove @guilleiguaran and @dylanahsmith as they were involved in the commit ❤️ |
@guilleiguaran 👍 thanks! |
I believe this should be fixed by pull #9265. |
I've committed ee291b9 which fixes the issue. Thanks for the through reproduction instructions. <3 |
3.2.12 has introduced a regression in predicate builder. Some scopes are trying to query non-existing database table on codeload
Here are steps to reproduce
Create a new app
generate a model with an integer column and migrate
add some scopes to the model involving integer values
mention User model in
routes.rb
. Devise does that usually. That would guarantee that user model will be loaded on schema:loadrun
RAILS_ENV=test bundle exec rake db:drop db:schema:load_if_ruby --trace
see this:
The text was updated successfully, but these errors were encountered: