2011-09-05 20 views
7

Devo creare una colonna BLOB per archiviare del contenuto di testo.Rails - Come aggiungere una colonna BLOB usando ActiveRecord?

Ho letto da qualche parte che ho bisogno di fare quanto segue:

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 

Tuttavia, dà il seguente messaggio di errore:

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)

Qualche idea?

Si prega di notare che sto usando PostgreSQL. Grazie!

risposta

10

La migrazione sembra essere corretta tranne la parte in basso. Dovrebbe essere:

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 

doppio controllo per errori di battitura. E quale versione di rotaie stai usando? Funziona bene su rotaie 3.0.7.

+0

In realtà ho commesso l'errore di battitura quando ho copiato su StackOverflow (il nome della colonna reale è version_comment_extended ma l'ho reso più corto di proposito per migliorare la leggibilità.Sto usando Rails 3.0.5. –

Problemi correlati