Rails:在mysql中存储大blob,以便delayed_job可以在以后读取它

时间:2015-06-29 11:34:11

标签: mysql ruby-on-rails delayed-job

我正在开发导出/导入功能,以便将数据从一个应用程序传输到另一个应用程序。

我有一个延迟的工作来执行导入任务。我需要将一个json文件传递给我正在尝试将该文件写入数据库的延迟作业。 json文件的最大可能大小为20兆字节。

由于应用程序部署在多服务器设置上,我无法将文件写入磁盘并在延迟作业中从磁盘读取。

问题: 我无法添加25兆字节大小的二进制列,即使我在迁移中指定了限制,如下所示

class CreateImports < ActiveRecord::Migration
  def up
    create_table :imports, :force => true do |t|
      t.binary     :upload_data , :limit => 50.megabyte
      t.timestamps
    end
   end

  def down
    drop_table :imports
  end
end

正在创建这样的架构

create_table "imports", :force => true do |t|
    t.binary   "upload_data",     :limit => 2147483647
    t.datetime "created_at",                            :null => false
    t.datetime "updated_at",                            :null => false
end

这不允许我存储超过2 MB的blob。 我该如何处理这个问题?

0 个答案:

没有答案