Rails Rake db:迁移中止(sqlite3)

时间:2016-02-04 16:26:19

标签: ruby-on-rails sqlite dbmigrate

已经提出了类似的问题,但没有一项建议对我有用。我试图在计算机上的rails开发中迁移数据库,并且我不断收到此错误消息:

 rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

undefined local variable or method `total' for #<CreateProfessors:0x007f8ce3ca4e60>/Users/tfantina/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:664:in `block in method_missing'
   /Users/tfantina/.rvm/gems/ruby-2.2.1/gems/activerecord-   4.2.5.1/lib/active_record/migration.rb:634:in `block in say_with_time'
/Users/tfantina/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:634:in `say_with_time'
/Users/tfantina/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.5.1/lib/active_record/migration.rb:654:in `method_missing'

它持续了一百行左右 其中一篇帖子建议删除

null: false

来自

  t.timestamps null:false
我做了。

我尝试的另一个建议是运行db:drop:all然后db:create:all然后db:migrate。

为了确保sqlite3在我的OSX上,我在终端运行了一个sqlite3查询并返回:SQLite版本3.8.10.2所以我认为它正常工作。

迁移失败:

    class CreateProfessors < ActiveRecord::Migration
  def change
    create_table :professors do |t|
      t.string :fname
      t.string :lname
      t.decimal :rating-total
      t.decimal :rating-hw
      t.decimal :rating-test
      t.decimal :rating-interest
      t.text :comments
      t.string :ease

      t.timestamps 
    end
  end
end

1 个答案:

答案 0 :(得分:1)

这些列名称是非法的:

t.decimal :rating-total
t.decimal :rating-hw
t.decimal :rating-test
t.decimal :rating-interest

应该是:(使用_代替-

t.decimal :rating_total
t.decimal :rating_hw
t.decimal :rating_test
t.decimal :rating_interest
相关问题