Rails - 如何使用ActiveRecord添加BLOB列?

时间:2011-09-05 17:35:02

标签: ruby-on-rails-3 blob rails-postgresql

我需要创建一个BLOB列来存储一些文本内容。

我在某处读过我需要做的事情:

class AddVersionCommentToMetaData < ActiveRecord::Migration
  def self.up
    add_column :meta_data, :version_comment, :binary, :limit => 10.megabyte
  end

  def self.down
    remove_column :meta_data, :version_comment
  end
end

但是,它会显示以下错误消息:

  

PGError:ERROR:类型“bytea”不允许使用类型修饰符第1行:   ...“meta_data”ADD COLUMN“version_comment_extended”bytea(1048 ...                                                                ^:改变   表“meta_data”添加列“version_comment_extended”   BYTEA(10485760)

有什么想法吗?

请注意我使用的是PostgreSQL。 谢谢!

1 个答案:

答案 0 :(得分:11)

除了羽绒部分外,迁移似乎是正确的。它应该是:

class AddVersionCommentToMetaData < ActiveRecord::Migration
  def self.up
    add_column :meta_data, :version_comment, :binary, :limit => 10.megabyte
  end

  def self.down
    remove_column :meta_data, :version_comment
  end
end

仔细检查拼写错误。您使用的是哪种版本的导轨?它在rails 3.0.7中运行良好。