উল্লিখিতদের জন্য অন্য বিকল্প, যদি আপনার একই মাইগ্রেশন (গুলি) এর সাথে একাধিক বার প্রয়োজন হয়। ব্যক্তিগতভাবে আমি মনে করি এটি আপনার অভিবাসনগুলিতে অনেক নমনীয়তা যুক্ত করে।
যোগ database/migrationsআপনার আপনার autoload বস্তু composer.jsonভালো:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
তারপরে namespace Database\Migrations;আপনার সমস্ত মাইগ্রেশন ফাইলগুলিতে যুক্ত করুন।
তারপরে $ composer dump-autoloadআপনার composer.lockফাইলটি রিফ্রেশ করতে চালান ।
তারপরে, স্থানান্তরের জন্য আপনার শ্রেণীর নামটি ধরে নিলে AlterTableWebDirectoriesআপনি এই জাতীয় আদেশ তৈরি করতে পারেন:
$ php artisan make:command DropAlterTableWebDirectories
এবং এই handle()পদ্ধতিটি আপনার পদ্ধতিতে লিখুন:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
এটি আপনি যা চান ঠিক তা করবে। আপনি যদি মুছে ফেলার পরিবর্তে মাইগ্রেশন গণনা হ্রাস করতে চান তবে আপনি সম্ভবত DB:rawকমান্ডটি কীভাবে পরিবর্তন করবেন তা নির্ধারণ করতে পারেন ।
কমান্ডের মধ্যে একটি আর্গুমেন্ট পাস করে আপনি কোন স্থানান্তরকে এটিকে ফেলে দিচ্ছেন তা গতিময়ভাবে চয়ন করার অনুমতি দেওয়ার জন্য এই কমান্ডটি বাড়ানো যেতে পারে।
তারপরে আপনি যখন সেই ফাইলটি আবার মাইগ্রেট করতে পড়ছেন, আপনি কেবল চালাতে পারেন php artisan migrateএবং এটি কেবলমাত্র সেই ফাইলটি স্থানান্তরিত করবে।
এই প্রক্রিয়াটি আপনাকে প্রতিবার একটি সম্পূর্ণ রিফ্রেশ এবং বীজ না করে মাইগ্রেশনে নির্দিষ্ট পরিবর্তন করতে দেয় allows
ব্যক্তিগতভাবে আমার এগুলি করা খুব দরকার কারণ আমার বীজগুলি বরং বড়।