在"架构"构建器中更改列长度?

qwe*_*rty 19 database schema builder alter laravel

我有两个字段,我需要增加字符限制.我仔细阅读了文档,令我惊讶的是我找不到它的选择.有可能吗?如果没有,我该如何解决这个问题呢?

我可以删除列并使用正确的属性重新创建它,但我不想丢失数据库中的任何数据.

ade*_*ers 26

对于Laravel 4

DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)');
Run Code Online (Sandbox Code Playgroud)


NAR*_*KOZ 23

使用原始查询:

/**
 * 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 TABL mytable MODIFY mycolumn VARCHAR(old-length)');
}
Run Code Online (Sandbox Code Playgroud)

更换mytable,mycolumn,new-lengthold-length.

对于Laravel 5+替换DB::queryDB::statement.


Yau*_*hyk 17

对于Laravel 5:

Schema::table('users', function($table)
{
    $table->string('name', 50)->change();
});
Run Code Online (Sandbox Code Playgroud)

查看文档以获取更多信息.