我的Blog
表中有三列没有数据类型,例如:
Blog(id: integer, url: text, created_at: datetime, updated_at: datetime, webname: , name: text, homeurl: , blogname: , home_url: text, blog_name: string)
homeurl:
,blogname:
和webname:
由于某种原因没有任何数据类型。不确定它们是如何添加到数据库的,但我想删除它们,因为我的Blogs
表格不会显示在我的rails应用程序的schema.rb
部分。
问题是,我尝试的所有方法都不起作用。我尝试使用rake db:migration RemoveColumn
作为我的迁移文件:
class RemoveColumn < ActiveRecord::Migration
def up
remove_column :blogs, :homeurl
end
end
返回以下错误:
undefined method "to_sym" for nil:NilClass/db/migrate/20150727201931_remove_columns.rb:3:in "up"
NoMethodError: undefined method "to_sym" for nil:NilClass
我尝试向列添加数据类型,我得到相同的“to_sym”错误。我也尝试删除控制台中的列,同样的错误。
有没有办法删除没有数据类型的列?或者有没有办法将数据类型添加到不存在的列?
答案 0 :(得分:1)
您可以像这样将其重写为SQL:
class RemoveColumn < ActiveRecord::Migration
def up
execute "ALTER TABLE blogs DROP homeurl";
end
end