3

我正在尝试在 Datamapper for Rails 3 中创建一个带有 Binary 字段的模型,如下所示:

class Image

  include DataMapper::Resource

  # attributes
  property :id, Serial
  property :url, String
  property :file_name, String
  property :content_type, String
  property :data, Binary
  property :created_at, DateTime
  property :updated_at, DateTime

end

但是,当我尝试迁移时,我得到以下信息:

ERROR:  type modifier is not allowed for type "bytea"
LINE 1: ..." VARCHAR(50), "content_type" VARCHAR(50), "data" BYTEA(50),...

我似乎无法找到一种方法来消除 datamapper 放置在该字段上的 50 的限制。有人知道如何做到这一点或解决问题吗?

4

1 回答 1

4

这是 DataMapper 中的一个错误。看看这个线程。它已在 GitHub 中修复,但尚未发布。如果你没问题,很容易修补 dm-migrations 来修复它。在“dm-migrations/adapters/dm-do-adapter.rb”中,您会找到说

if dump_class.equal?(String) && schema_primitive != 'TEXT' && schema_primitive != 'CLOB' && schema_primitive != 'NVARCHAR'

并附加

&& schema_primitive != 'BYTEA'

到最后。

我在这里测试了你的代码,它适用于应用的补丁。

于 2012-04-15T00:23:47.650 回答