Как заставить Rails использовать столбец LONGBLOB в mysql?

Я пытаюсь написать миграцию, которая добавляет столбец LONGBLOB в таблицу в базе данных MySQL. Я хотел бы использовать LONGBLOB вместо BLOB, чтобы можно было хранить больше данных в двоичном столбце. Проблема в том, что он добавляет столбец BLOB, хотя я указываю больший размер.

Вот строка, которую я использую для добавления столбца:

add_column :db_files, :data, :binary, :null => false, :size => 1.megabyte

Я это неправильно делаю?

Ответов (2)

Решение

Следующее создаст поле MEDIUMBLOB. Используйте 16 мегабайт, чтобы перейти к LONGBLOB.

def self.up
  create_table "blob_test", :force => true do |t|
    t.column :data, :binary, :limit => 10.megabyte
  end
end

class Migration_create_technologe расширяет CI_Migration {

public function up()
{
    $this->dbforge->add_field(array(
        'id' => array(
            'type' => 'INT',
            'constraint' => 11,
            'unsigned' => TRUE,
            'auto_increment' => TRUE
        ),
        'title' => array(
            'type' => 'VARCHAR',
            'constraint' => '100',
            'collation' => 'utf8_unicode_ci',
        ),
        'writer' => array(
            'type' => 'VARCHAR',
            'constraint' => '100',
            'collation' => 'utf8_unicode_ci',
        ),
        'created' => array(
            'type' => 'datetime',
             'default'=> '0000-00-00 00:00:00',
            'collation' => 'utf8_unicode_ci',
            ),                           
    ));
    $this->dbforge->add_key('id',TRUE);
   $this->dbforge->add_field("body longblob NOT NULL ");
    $this->dbforge->create_table('technologe');
}

public function down()
{
    $this->dbforge->drop_table('technologe');
}
}