Rails PostgreSQL:列 "table_rows" 不存在(ActiveRecord::StatementInvalid)
Rails PostgreSQL: column "table_rows" does not exist (ActiveRecord::StatementInvalid)
运行 测试时突然出现这个奇怪的错误。 rails 4.1.5
pg 0.18.1
尝试删除并重新创建数据库,但无济于事。开发似乎在工作,只是没有测试。
RAILS_ENV=test rake db:create db:migrate
请指教
...gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/
database_statements.rb:128:in `async_exec':
PG::UndefinedColumn: ERROR:
column "table_rows" does not exist (ActiveRecord::StatementInvalid)
LINE 1: ...chema.tables WHERE table_schema = 'real_test' AND table_rows...
^
: SELECT table_name FROM information_schema.tables WHERE table_schema = 'real_test' AND table_rows > 0
from ...ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
from ...ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
from ...ruby/gems/2.2.0/gems/activesupport-4.1.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
...
完整回溯:
$ rspec
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Randomized with seed 14295
Finished in 0.09195 seconds (files took 4.81 seconds to load)
0 examples, 0 failures
Randomized with seed 14295
/Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `async_exec': PG::UndefinedColumn: ERROR: column "table_rows" does not exist (ActiveRecord::StatementInvalid)
LINE 1: ...chema.tables WHERE table_schema = 'real_test' AND table_rows...
^
: SELECT table_name FROM information_schema.tables WHERE table_schema = 'real_test' AND table_rows > 0
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.1.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:367:in `log'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:127:in `execute'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:57:in `tables_with_new_rows'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:49:in `tables_to_truncate'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:80:in `block in clean'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/referential_integrity.rb:17:in `disable_referential_integrity'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:79:in `clean'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/base.rb:40:in `clean_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `block in clean_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `each'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `clean_with'
from /Users/pain/Sites/real/spec/features/acceptance_helper.rb:40:in `block (2 levels) in <top (required)>'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/example.rb:331:in `instance_exec'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/example.rb:331:in `instance_exec'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/hooks.rb:350:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `block in run_hooks_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `each'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `run_hooks_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1499:in `with_suite_hooks'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:109:in `block in run_specs'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/reporter.rb:62:in `report'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:108:in `run_specs'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:86:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:70:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:38:in `invoke'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/exe/rspec:4:in `<top (required)>'
from ./bin/rspec:16:in `load'
from ./bin/rspec:16:in `<main>'
好的,从 1.3.0
升级到 1.4.0
后,问题似乎出在 database_cleaner
上。注释掉以下所做的测试以至少开始工作:
39 config.before(:suite) do
~ 40 # DatabaseCleaner.clean_with(:deletion)
41 end
仅作记录。 database_cleaner 1.4.0
运行 测试时突然出现这个奇怪的错误。 rails 4.1.5
pg 0.18.1
尝试删除并重新创建数据库,但无济于事。开发似乎在工作,只是没有测试。
RAILS_ENV=test rake db:create db:migrate
请指教
...gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/
database_statements.rb:128:in `async_exec':
PG::UndefinedColumn: ERROR:
column "table_rows" does not exist (ActiveRecord::StatementInvalid)
LINE 1: ...chema.tables WHERE table_schema = 'real_test' AND table_rows...
^
: SELECT table_name FROM information_schema.tables WHERE table_schema = 'real_test' AND table_rows > 0
from ...ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
from ...ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
from ...ruby/gems/2.2.0/gems/activesupport-4.1.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
...
完整回溯:
$ rspec
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Randomized with seed 14295
Finished in 0.09195 seconds (files took 4.81 seconds to load)
0 examples, 0 failures
Randomized with seed 14295
/Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `async_exec': PG::UndefinedColumn: ERROR: column "table_rows" does not exist (ActiveRecord::StatementInvalid)
LINE 1: ...chema.tables WHERE table_schema = 'real_test' AND table_rows...
^
: SELECT table_name FROM information_schema.tables WHERE table_schema = 'real_test' AND table_rows > 0
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `block in execute'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.1.5/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract_adapter.rb:367:in `log'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:127:in `execute'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:57:in `tables_with_new_rows'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:49:in `tables_to_truncate'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:80:in `block in clean'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql/referential_integrity.rb:17:in `disable_referential_integrity'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/active_record/deletion.rb:79:in `clean'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/base.rb:40:in `clean_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `block in clean_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `each'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/database_cleaner-1.4.0/lib/database_cleaner/configuration.rb:91:in `clean_with'
from /Users/pain/Sites/real/spec/features/acceptance_helper.rb:40:in `block (2 levels) in <top (required)>'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/example.rb:331:in `instance_exec'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/example.rb:331:in `instance_exec'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/hooks.rb:350:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `block in run_hooks_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `each'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1525:in `run_hooks_with'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/configuration.rb:1499:in `with_suite_hooks'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:109:in `block in run_specs'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/reporter.rb:62:in `report'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:108:in `run_specs'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:86:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:70:in `run'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/lib/rspec/core/runner.rb:38:in `invoke'
from /Users/pain/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/bundler/gems/rspec-core-c22e9023dacb/exe/rspec:4:in `<top (required)>'
from ./bin/rspec:16:in `load'
from ./bin/rspec:16:in `<main>'
好的,从 1.3.0
升级到 1.4.0
后,问题似乎出在 database_cleaner
上。注释掉以下所做的测试以至少开始工作:
39 config.before(:suite) do
~ 40 # DatabaseCleaner.clean_with(:deletion)
41 end
仅作记录。 database_cleaner 1.4.0