İşte gelecekteki okuyucu için tam cevap. Bunun yalnızca Laravel 5+ ile mümkün olduğunu unutmayın.
Öncelikle doktrin / dbal paketine ihtiyacınız olacak :
composer require doctrine/dbal
Artık geçişinizde sütunu null yapılabilir hale getirmek için bunu yapabilirsiniz:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->integer('user_id')->unsigned()->nullable()->change();
});
}
Bu operasyonu nasıl geri alacağınızı merak ediyor olabilirsiniz. Maalesef bu sözdizimi desteklenmiyor:
$table->integer('user_id')->unsigned()->change();
Bu, geçişi geri almak için doğru sözdizimidir:
$table->integer('user_id')->unsigned()->nullable(false)->change();
Veya isterseniz ham bir sorgu yazabilirsiniz:
public function down()
{
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;');
}
Umarım bu cevabı faydalı bulursunuz. :)