Вы можете использовать text
или binary
вместо string
в своей миграции, если хотите преодолеть ограничение размера.
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html#method-i-column
Документация API даетПример:
td.column(:picture, :binary, :limit => 2.megabytes)
# => picture BLOB(2097152)
Максимальный размер столбцов TEXT
или BLOB
(двоичный) зависит от вашей СУБД (например, MySQL, PostgreSQL), доступной памяти и определенных параметров конфигурации.Например, в MySQL вы должны взглянуть на параметр max_allowed_packet
, который можно установить на любое значение до 1 ГБ.
Относительно хранилища с помощью Paperclip:
Paperclip не позволяет хранить базы данных «из коробки», поэтому для этого нужно написать собственный код.Google дает мне это:
http://patshaughnessy.net/2009/5/29/paperclip-sample-app-part-3-saving-file-attachments-in-a-database-blob-column
Это устарело, поэтому я не уверен, что это полезно.
Более важно:
Обратите внимание, что хранение файлов в базе данных, как правило, не рекомендуется, поэтому Paperclip не поддерживает его.По некоторым причинам это плохая идея:
Когда изображения хранятся в БД, каждый запрос изображения требует обращения к вашему приложению Rails и к базе данных, которая имеет массив отрицательно влияет на производительность.Если вы храните изображения в виде файлов или в Amazon S3, ваше приложение будет масштабироваться намного лучше.
Ваша база данных очень быстро увеличивается в размере, что затрудняет резервное копирование ваших данных.
Поскольку разные СУБД имеют разные правила для размера столбцов, типов столбцов и т. Д., Перенос больших столбцов в другую базу данных (например, из MySQL в PostgreSQL) может вызвать трудности.
Так что я надеюсь, у вас есть все основания для этого.