2011-09-05 27 views
7

Tôi cần tạo cột BLOB để lưu trữ một số nội dung văn bản.Rails - Cách thêm cột BLOB bằng ActiveRecord?

Tôi đã đọc ở đâu đó rằng tôi cần phải làm như sau:

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 

Tuy nhiên, nó mang lại cho các thông báo lỗi sau:

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)

Bất kỳ ý tưởng?

Xin lưu ý rằng tôi đang sử dụng PostgreSQL. Cảm ơn!

Trả lời

10

Di chuyển có vẻ đúng, ngoại trừ phần giảm. Phải là:

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 

kiểm tra lỗi chính tả. Và bạn đang sử dụng phiên bản đường ray nào? Nó hoạt động tốt trong đường ray 3.0.7.

+0

Trên thực tế tôi đã typo khi copy dán trên StackOverflow (tên cột thực sự là version_comment_extended nhưng tôi đã làm cho nó ngắn hơn về mục đích để cải thiện khả năng đọc. Tôi đang sử dụng Rails 3.0.5. –

Các vấn đề liên quan