미래 독자를위한 완벽한 답변입니다. 이것은 Laravel 5 이상에서만 가능합니다.
우선 교리 / dbal 패키지 가 필요합니다 .
composer require doctrine/dbal
이제 마이그레이션에서 열을 nullable로 만들 수 있습니다.
public function up()
{
Schema::table('users', function (Blueprint $table) {
// change() tells the Schema builder that we are altering a table
$table->integer('user_id')->unsigned()->nullable()->change();
});
}
이 작업을 되 돌리는 방법이 궁금 할 것입니다. 슬프게도이 구문은 지원되지 않습니다.
// Sadly does not work :'(
$table->integer('user_id')->unsigned()->change();
마이그레이션을 되 돌리는 올바른 구문입니다.
$table->integer('user_id')->unsigned()->nullable(false)->change();
또는 원하는 경우 원시 쿼리를 작성할 수 있습니다.
public function down()
{
/* Make user_id un-nullable */
DB::statement('UPDATE `users` SET `user_id` = 0 WHERE `user_id` IS NULL;');
DB::statement('ALTER TABLE `users` MODIFY `user_id` INTEGER UNSIGNED NOT NULL;');
}
이 답변이 도움이 되길 바랍니다. :)