【问题标题】:Dropping column from DB从数据库中删除列
【发布时间】:2014-03-03 17:46:11
【问题描述】:

当我为我的 Rails 模型创建附件列时,我使用了:

def self.up
  change_table :updates do |t|
    t.attachment :image
  end
end

def self.down
  drop_attached_file :updates, :image
end

我试图以这种方式删除该列,但它说该关系不存在:

remove_column :updates, :image

我怎样才能正确地从更新表中删除此列???

更新 与:图像相关的列

t.string   "image_file_name"
t.string   "image_content_type"
t.integer  "image_file_size"
t.datetime "image_updated_at"

【问题讨论】:

  • 没有名为image 的列,是吗?查看您实际拥有的列,例如发布您的db/schema.rb 的相关部分。
  • 不,不仅仅是相关的列。

标签: ruby-on-rails database postgresql ruby-on-rails-4


【解决方案1】:

您始终可以单独删除它们:

change_table :updates do |t|
  t.remove :image_file_name
  t.remove :image_content_type
  t.remove :image_file_size
  t.remove :image_updated_at
end

【讨论】:

  • 好的,谢谢!这就是我在发布问题之前第一次查看我的架构时所想的,但自从我创建了附件字段以来,我并不知道它。谢谢@tadman
【解决方案2】:

您也可以使用 rake db:rollback 撤消上一次 rake db:migrate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2016-12-13
    • 1970-01-01
    相关资源
    最近更新 更多