उन लोगों के लिए एक और विकल्प यदि आपको एक ही माइग्रेशन (ओं) के साथ कई बार ऐसा करने की आवश्यकता है। व्यक्तिगत रूप से मुझे लगता है कि यह आपके माइग्रेशन में बहुत अधिक लचीलापन जोड़ता है।
database/migrations
अपने ऑटोलैड ऑब्जेक्ट को composer.json
इस तरह से जोड़ें :
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations"
]
},
फिर 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
और यह केवल उस एक को माइग्रेट करेगा।
यह प्रक्रिया आपको हर बार पूर्ण रिफ्रेश और सीड करने के बिना माइग्रेशन में विशिष्ट बदलाव करने की अनुमति देती है।
व्यक्तिगत रूप से मुझे ऐसा करने की आवश्यकता है क्योंकि मेरे बीज बड़े हैं।