Rails Rake db: миграция прерывается (sqlite3)

Подобные вопросы были заданы, но ни одна из рекомендаций не сработала для меня. Я пытаюсь перенести DB в разработке рельсов на моем компьютере, и я получаю это сообщение об ошибке:

 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 ответ

Решение

Эти имена столбцов недопустимы:

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
Другие вопросы по тегам