class UpdateSessions extends Migration {
public function up()
{
Schema::table('sessions', function($table){
$table->string('comCode')->nullable()->change();
});
}
public function down()
{
// What should i write here?
}
}
我已经创建了一个会话表来编写迁移,以将列更改为可为空。 现在我对我应该写下什么感到困惑?
答案 0 :(得分:1)
在迁移的down
方法中,撤消您在up
方法中所做的更改。使用artisan migrate:rollback
命令回滚迁移时,将调用此方法。在你的情况下,它看起来像这样:
public function down()
{
// Laravel doesn't have a method to undo ->nullable()
// so you have to do use a raw query in this case
DB::statement('ALTER TABLE sessions MODIFY comCode VARCHAR(255) NOT NULL');
}
因此,如果在迁移up
中将名为comCode
的列修改为可为空,则在回滚迁移时,您需要更新该列定义以使其不为空,并且这是你在down
方法中所做的。
为了使迁移成功运行,没有必要在down
方法中包含任何内容,但是一旦迁移运行,您将无法将其回滚,除非您在down
方法中使用正确的代码。
答案 1 :(得分:0)
截至2015年12月,至少在Laravel 5中你可以写
Schema::table('sessions', function($table){
$table->string('comCode')->change();
});
注意:这次没有nullable()