2011-09-05 23 views
7

我需要創建一個BLOB列來存儲一些文本內容。Rails - 如何使用ActiveRecord添加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: 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。 謝謝!

回答

10

遷移似乎是正確的,除了下行部分。它應該是:

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

+0

其實我在StackOverflow上覆制粘貼時犯了一個錯字(真正的列名是version_comment_extended,但爲了提高可讀性,我將其縮短了一點)。我使用的是Rails 3.0.5。 –

相關問題