9

我需要创建一个 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: 错误: type modifier is not allowed for type "bytea" LINE 1: ..."meta_data" ADD COLUMN "version_comment_extended" bytea(1048... ^ : ALTER TABLE "meta_data" ADD COLUMN "version_comment_extended" bytea(10485760)

任何的想法?

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

4

1 回答 1

12

除了向下的部分,迁移似乎是正确的。它应该是:

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 中运行良好。

于 2011-09-05T21:27:09.893 回答