ভবিষ্যতের পাঠকের সম্পূর্ণ উত্তর এখানে। নোট করুন যে এটি কেবল লারাভেল 5+ এই সম্ভব।
সবার আগে আপনার মতবাদ / ডাবল প্যাকেজটি দরকার:
composer require doctrine/dbal
এখন আপনার মাইগ্রেশনে আপনি কলামটি nlalable করতে এটি করতে পারেন:
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;');
}
আশা করি আপনি এই উত্তরটি কার্যকর খুঁজে পাবেন। :)