Mysql2'字段列表'中的未知列'个人'

时间:2015-05-04 21:36:31

标签: mysql ruby-on-rails database rspec

我正在编写Rspec测试,但它们失败了,因为Mysql无法识别字段列表中的individual列。

当我查看内部时,individual列确实存在于数据库中。

schema.rb在正确的表中列出它,并在ruby模型中将其称为attr_accessible

以下是错误日志:

Failure/Error: Unable to find matching line from backtrace
 ActiveRecord::StatementInvalid:
   Mysql2::Error: Unknown column 'individual' in 'field list': INSERT INTO `plan_selections` (`id`, `a_bunch_of_other_columns`, `individual`) VALUES (1, NULL, 50, 17, '2014-07-14 20:20:33', '2014-07-14 20:20:33', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:299:in `query'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:299:in `block in execute'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:473:in `block in log'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:467:in `log'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:299:in `execute'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:231:in `execute'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:294:in `insert_fixture'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:534:in `block (5 levels) in create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:533:in `each'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:533:in `block (4 levels) in create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:532:in `each'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:532:in `block (3 levels) in create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:524:in `each'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:524:in `block (2 levels) in create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:188:in `within_new_transaction'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:523:in `block in create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:282:in `disable_referential_integrity'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:508:in `create_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:977:in `load_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:950:in `setup_fixtures'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/activerecord-4.2.1/lib/active_record/fixtures.rb:824:in `before_setup'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-rails-3.2.1/lib/rspec/rails/adapters.rb:112:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in `instance_exec'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:333:in `instance_exec'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:387:in `execute_with'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:616:in `block (2 levels) in run_around_example_hooks_for'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in `call'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:247:in `call'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:617:in `run_around_example_hooks_for'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/hooks.rb:474:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:343:in `with_around_example_hooks'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:385:in `with_around_and_singleton_context_hooks'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example.rb:174:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:549:in `block in run_examples'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:545:in `map'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:545:in `run_examples'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:512:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:513:in `block in run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:513:in `map'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/example_group.rb:513:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:110:in `block (3 levels) in run_specs'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:110:in `map'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:110:in `block (2 levels) in run_specs'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1526:in `with_suite_hooks'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:109:in `block in run_specs'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/reporter.rb:62:in `report'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:108:in `run_specs'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:86:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70:in `run'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in `invoke'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/gems/rspec-core-3.2.3/exe/rspec:4:in `<top (required)>'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/bin/rspec:23:in `load'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/bin/rspec:23:in `<main>'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/bin/ruby_executable_hooks:15:in `eval'
 # /Users/yedidyaweiner/.rvm/gems/ruby-2.1.2@business-tool/bin/ruby_executable_hooks:15:in `<main>'

这是我的创建表:

CREATE TABLE `plan_selections` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number_of...` int(11) DEFAULT NULL,
`selected_plan_id` int(11) DEFAULT NULL,
`inquiry_id` int(11) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`available...` text,
`plan_name` varchar(255) DEFAULT NULL,
`contr...` varchar(255) DEFAULT NULL,
`contr...` float DEFAULT NULL,
`contr...` float DEFAULT NULL,
`contr...` varchar(255) DEFAULT NULL,
`contr...` float DEFAULT NULL,
`contr...` float DEFAULT NULL,
`contr...` varchar(255) DEFAULT NULL,
`contr...` float DEFAULT NULL,
`contr...` float DEFAULT NULL,
`individual` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_plan_choices_on_user_session_id` (`inquiry_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1974 DEFAULT CHARSET=utf8;

为什么告诉该列未知?

1 个答案:

答案 0 :(得分:4)

所以你在写测试,这很好!添加individual列后,您可能忘记迁移测试数据库,请执行以下操作:

RAILS_ENV=test rake db:migrate