在laravel5.1之前,如果你用migration为表结构设定了一些属性,之后如果再想修改的话,那就费劲了,需要rollback重新来过。而这种修改在设计中是经常会遇到的,特别是当你的表中已经有一堆测试数据的时候,你不会想轻易地rollback。
laravel5.1提供了修改的功能,不过需要先装一个包“doctrin e/dbal”.
之后你就可以新建一个migration,然后直接修改之前的内容了,只需要用change()函数即可,比如:
class ModifyUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
Schema::table('users', function (Blueprint $table) {
//
$table->string('phone',12)->unique()->nullable()->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
结果这也是一个坑,每次migrate的时候,都提示属性重复,擦
最后解决方法还是rollback,然后重新倒入sql,再migrate。好在,直接在以前的migrate中修改属性也可以生效。