Изменить длину столбца в построителе схем?

У меня есть два поля, мне нужно увеличить лимит символов. Я прочитал документацию и, к моему удивлению, не нашел для нее никакого выбора. Можно ли это сделать? Если нет, как мне решить это?

Я могу удалить столбец и заново создать его с правильными свойствами, но я не хочу потерять какие-либо данные в базе данных.

Ответы

Ответ 1

Используйте Необработанные запросы:

/**
 * Make changes to the database.
 *
 * @return void
 */
public function up()
{
  DB::query('alter table MYTABLE modify MYCOLUMN varchar(new-length)');
}

/**
 * Revert the changes to the database.
 *
 * @return void
 */
public function down()
{
  DB::query('alter table MYTABLE modify MYCOLUMN varchar(old-length)');
}

Замените MYTABLE, MYCOLUMN, new-length и old-length.

Ответ 2

Для Laravel 4

DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)');

Ответ 3

Для Laravel 5:

Schema::table('users', function($table)
{
    $table->string('name', 50)->change();
});

Для получения дополнительной информации просмотрите docs.

Ответ 4

Используйте `` для имени столбца, если имя является ключевым словом для системы. В противном случае вы получите "Синтаксическую ошибку или нарушение прав доступа".

DB::query("alter table MYTABLE modify `MYCOLUMN` varchar(new-length)");