Giter VIP home page Giter VIP logo

example-rails-6-1-associated-record-error's Introduction

README

This is an example repo for a Rails issue that I ran into when testing out an upgrade to 6.1.0.rc1 with my Rails app vglist.

You'll see that when you run bundle exec rails db:seed, it fails.

  • Clone repo with git clone https://github.com/connorshea/example-rails-6-1-associated-record-error
  • bundle install
  • bundle exec rails db:create (will need Postgres)
  • bundle exec rails db:migrate
  • bundle exec rails db:seed to trigger the failure

If you switch to the rails-6-0 branch, bundle install and re-run bundle exec rails db:seed, it won't fail.

Some change in Rails 6.1 has broken this and caused it to attempt to run invalid SQL.

Log from running db:seed:

Connors-MacBook-Pro-2:example-rails-6-1-associated-record-error connorshea$ bundle exec rails db:seed --trace
** Invoke db:seed (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:load_config
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke db:load_config 
** Execute db:abort_if_pending_migrations
Creating Game Purchases...
rails aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "platforms"
LINE 1: ...hases" WHERE "game_purchases"."comments" = $1 AND "platforms...
                                                             ^
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `exec_params'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `block (2 levels) in exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:677:in `block in exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:697:in `block (2 levels) in log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block in log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:688:in `log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:676:in `exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `execute_and_clear'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:53:in `exec_query'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:532:in `select'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:69:in `select_all'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:103:in `select_all'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/querying.rb:47:in `find_by_sql'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:850:in `block in exec_queries'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:868:in `skip_query_cache_if_necessary'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:835:in `exec_queries'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:638:in `load'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:249:in `records'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:524:in `find_take'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:98:in `take'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:81:in `find_by'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:175:in `find_or_create_by!'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/querying.rb:22:in `find_or_create_by!'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:24:in `block in <top (required)>'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:16:in `times'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:16:in `<top (required)>'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/engine.rb:567:in `load'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/engine.rb:567:in `load_seed'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/tasks/database_tasks.rb:449:in `load_seed'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/railties/databases.rake:386:in `block (2 levels) in <top (required)>'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `each'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/rake_module.rb:59:in `with_application'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/command.rb:52:in `invoke'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands.rb:18:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'

Caused by:
PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "platforms"
LINE 1: ...hases" WHERE "game_purchases"."comments" = $1 AND "platforms...
                                                             ^
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `exec_params'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `block (2 levels) in exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:677:in `block in exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:697:in `block (2 levels) in log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block in log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activesupport/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:688:in `log'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:676:in `exec_no_cache'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:655:in `execute_and_clear'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:53:in `exec_query'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:532:in `select'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:69:in `select_all'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:103:in `select_all'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/querying.rb:47:in `find_by_sql'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:850:in `block in exec_queries'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:868:in `skip_query_cache_if_necessary'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:835:in `exec_queries'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:638:in `load'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:249:in `records'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:524:in `find_take'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:98:in `take'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation/finder_methods.rb:81:in `find_by'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/relation.rb:175:in `find_or_create_by!'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/querying.rb:22:in `find_or_create_by!'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:24:in `block in <top (required)>'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:16:in `times'
/Users/connorshea/Programming/example-rails-6-1-associated-record-error/db/seeds.rb:16:in `<top (required)>'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/engine.rb:567:in `load'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/engine.rb:567:in `load_seed'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/tasks/database_tasks.rb:449:in `load_seed'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/activerecord/lib/active_record/railties/databases.rake:386:in `block (2 levels) in <top (required)>'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `each'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:24:in `block in perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rake-13.0.1/lib/rake/rake_module.rb:59:in `with_application'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/command.rb:52:in `invoke'
/Users/connorshea/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rails-413a02c4a5dc/railties/lib/rails/commands.rb:18:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:seed

The code in seeds.rb triggering this error is this, where platforms is an array of Platform objects:

GamePurchase.find_or_create_by!(
  comments: 'foo',
  platforms: platforms
)

And then the SQL being run on Rails 6.1 because of this code is:

# From adding `puts` statements inside `lib/active_record/connection_adapters/postgresql_adapter.rb` at the `exec_no_cache` method.
# SQL query on Rails 6.1:
"SELECT \"game_purchases\".* FROM \"game_purchases\" WHERE \"game_purchases\".\"comments\" = $1 AND \"platforms\".\"platform_id\" IN ($2, $3, $4) LIMIT $5"
# arguments:
["foo", 46, 24, 10, 1]

On Rails 6.0, these are the queries being run instead:

"SELECT 1 AS one FROM \"game_purchase_platforms\" WHERE \"game_purchase_platforms\".\"game_purchase_id\" IS NULL AND \"game_purchase_platforms\".\"platform_id\" = $1 LIMIT $2"
# arguments:
[23, 1]

"INSERT INTO \"game_purchases\" (\"comments\", \"created_at\", \"updated_at\") VALUES ($1, $2, $3) RETURNING \"id\""
# arguments:
["foo", "2020-11-22 01:28:53.908192", "2020-11-22 01:28:53.908192"]

"SELECT 1 AS one FROM \"game_purchase_platforms\" WHERE \"game_purchase_platforms\".\"game_purchase_id\" = $1 AND \"game_purchase_platforms\".\"platform_id\" = $2 LIMIT $3"
# arguments:
[20, 23, 1]

"INSERT INTO \"game_purchase_platforms\" (\"game_purchase_id\", \"platform_id\", \"created_at\", \"updated_at\") VALUES ($1, $2, $3, $4) RETURNING \"id\""
# arguments:
[20, 23, "2020-11-22 01:28:53.911865", "2020-11-22 01:28:53.911865"]

example-rails-6-1-associated-record-error's People

Contributors

connorshea avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.