Изменить длину столбца в построителе схем?
У меня есть два поля, мне нужно увеличить лимит символов. Я прочитал документацию и, к моему удивлению, не нашел для нее никакого выбора. Можно ли это сделать? Если нет, как мне решить это?
Я могу удалить столбец и заново создать его с правильными свойствами, но я не хочу потерять какие-либо данные в базе данных.
Ответы
Ответ 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)");