【问题标题】:Mysql2 Unknown column 'individual' in 'field list'Mysql2“字段列表”中的未知列“个人”
【发布时间】:2015-05-04 21:36:31
【问题描述】:

我正在编写 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;

为什么说该列是未知的?

【问题讨论】:

  • 你能分享你为plan_selections 创建的表吗?
  • @mim。究竟是哪个文件?还是比较初学者的。型号?
  • 我的意思是plan_selections 表结构,带有SHOW CREATE TABLE plan_selections;
  • 我用创建表编辑了问题

标签: mysql ruby-on-rails database rspec


【解决方案1】:

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

RAILS_ENV=test rake db:migrate

【讨论】:

  • 忘记迁移 - 只是想说:)
猜你喜欢
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
  • 2023-03-14
  • 2020-10-27
  • 2017-09-03
相关资源
最近更新 更多