Rails Rake db:migrate 中止 (sqlite3)
Rails Rake db:migrate aborting (sqlite3)
有人问过类似的问题,但 none 的建议对我有用。我正在尝试在我的计算机上迁移 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
这些列名是非法的:
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
有人问过类似的问题,但 none 的建议对我有用。我正在尝试在我的计算机上迁移 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
这些列名是非法的:
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