Oto pełna odpowiedź dla przyszłego czytelnika. Pamiętaj, że jest to możliwe tylko w Laravel 5+.
Przede wszystkim potrzebujesz pakietu doktryna / dbal :
composer require doctrine/dbal
Teraz podczas migracji możesz to zrobić, aby kolumna miała wartość null:
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();
});
}
Być może zastanawiasz się, jak przywrócić tę operację. Niestety ta składnia nie jest obsługiwana:
// Sadly does not work :'(
$table->integer('user_id')->unsigned()->change();
To jest poprawna składnia do przywrócenia migracji:
$table->integer('user_id')->unsigned()->nullable(false)->change();
Lub, jeśli wolisz, możesz napisać surowe zapytanie:
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;');
}
Mam nadzieję, że ta odpowiedź okaże się przydatna. :)