无法删除没有数据类型的列 - SQLite,-Rails

时间:2015-07-27 21:33:38

标签: ruby-on-rails ruby sqlite

我的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”错误。我也尝试删除控制台中的列,同样的错误。

有没有办法删除没有数据类型的列?或者有没有办法将数据类型添加到不存在的列?

1 个答案:

答案 0 :(得分:1)

您可以像这样将其重写为SQL:

class RemoveColumn < ActiveRecord::Migration
  def up
    execute "ALTER TABLE blogs DROP homeurl";
  end
end