我使用迁移
为模型添加了多个列class AddManyfieldsToBooks < ActiveRecord::Migration
def self.up
add_column :books, :item_one, :float
add_column :books, :item_two, :float
end
def self.down
remove_column :books, :item_one
remove_column :books, :item_two
end
end
我还更新了Book模型中的attr_accessible
attr_accessible :item_one, :item_two
然后我运行了bundle exec rake db:migrate命令
但是,新字段尚未添加到schema.rb
自从我上次使用rails以来已经有一段时间了,并且想知道我哪里出错了。我以前一次为这个项目运行一个字段的迁移,它们一直很好。有什么我想念的吗?
由于
编辑1:我已经意识到我做迁移时写的是
rails migration add_manyfields_to_books float:item_one
而不是
rails migration add_manyfields_to_books item_one:float
这导致schema.rb
中出现以下错误# Could not dump table "books" because of following StandardError
# Unknown type 'item_one' for column 'float'
我创建了一个新的分支'adding-items'来改变数据库。但是,即使我返回到主分支,模式中也存在相同的错误。我试过回滚迁移
bundle exec rake db:rollback STEP=1
但这并不能解决问题。我还删除了我正在进行这些更改的添加项目分支,希望它们不会出现在主文件中
解决此问题的最佳方法是什么?我应该删除Books表并从头开始重新添加吗?
答案 0 :(得分:1)
我通过删除整个Books表并使用包含我想要的额外字段的新迁移重新添加它来解决这个问题。