Rails迁移错误 - 表未显示在schema.rb中

时间:2016-04-15 13:01:51

标签: ruby-on-rails schema rake database-migration

我的一个模型表(Event)没有显示在schema.rb文件中,并且在它的位置有这条消息 -

mysql_thread_init()

成功的最后一次迁移如下 -

# Could not dump table "events" because of following NoMethodError
#   undefined method `[]' for nil:NilClass

改变了这一点 -

class RemoveOrganiserDescriptionFromEvents < ActiveRecord::Migration
  def change
    remove_column :events, :organiser_description, :text
  end
end

我很确定它的'不稳定'因为该属性不应该是一个url它应该是一个字符串。但是,当我尝试执行其他迁移时,它不起作用。当我尝试执行rake db:migrate -

时,我的终端出现以下错误

未定义的方法class AddOrganiserProfileToEvents < ActiveRecord::Migration def change add_column :events, :organiser_profile, :url end end 更改' NoMethodError:nil的未定义方法`to_sym':NilClass 你的意思是? to_s

在我的迁移文件中,这是我的代码 -

to_sym' for nil:NilClass
Did you mean?  to_s/Users/Michael/MWCoding/MamaKnows/mama_knows/db/migrate/20160415123947_remove_events_organiser_profile.rb:3:in

我还试图完全删除该列,然后尝试用正确的版本替换它,但无济于事。所有即将到来的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我能够通过删除迁移并重新迁移来解决这个问题:

rake db:drop:all

然后

rake db:migrate

答案 1 :(得分:0)

add_column :events, :organiser_profile, :url

没有意义。请参阅add_column方法here的文档。参数是表,列名和列类型。 :url不是有效类型。列出了有效类型here