मैं माइग्रेशन फ़ाइलों को पुनर्निर्देशित करने के लिए माइग्रेशन फ़ाइलों का नाम बदलने की कोशिश कर रहा हूं, लेकिन मुझे एक त्रुटि मिली।
मुझे पता है कि माइग्रेशन फ़ाइल का नाम टाइमस्टैम्प के आधार पर उत्पन्न होता है, उदाहरण:
m150311_012031_create_place_table.php
m150311_020901_create_meeting_table.php
मैं भूल गया कि मुझे बनाना चाहिए meeting
बनाने से पहले टेबल पहले place
टेबल, तो मैं क्या चलाता हूं yii migrate/down all
पहले माइग्रेशन को रोलबैक करने के लिए, मैं इसे पुन: व्यवस्थित करने के लिए फ़ाइल का नाम बदलता हूं:
m150311_012030_create_meeting_table.php
m150311_012031_create_place_table.php
और भाग खड़ा हुआ yii migrate up/all
लेकिन मुझे यह त्रुटि मिली:
PHP Fatal error: Class "m150311_012030_create_meeting_table" not found in C:wampwwwyii2advancedvendoryiisoftyii2consolecontrollersMigrateController.php on line 113
मुझे लगता है composer dumpautoload
इसे ठीक कर देगा, लेकिन कुछ भी नहीं होता है। मुझे पता है कि मैं फिर से शुरू करने से सभी माइग्रेशन को हटा और बना सकता हूं, लेकिन अगर मैंने पहले ही 10 माइग्रेशन फाइलें बनाई हैं, और मैं भूल गया कि मुझे दूसरे ऑर्डर पर माइग्रेशन बनाना चाहिए था।
यह कैसे करना है?
उत्तर:
जवाब के लिए 5 № 1यह करने की अनुशंसा नहीं की जाती है सिवाय इसके कि आपने अभी तक काम करने के लिए अपने काम को धक्का नहीं दिया है।
समस्या यह है कि फ़ाइल नाम बदलने के अलावा आपको कक्षा नामों को बदलने की भी आवश्यकता है, क्योंकि माइग्रेशन व्यवस्थित किए जाने के कारण।
माइग्रेशन क्लास नाम बिल्कुल फ़ाइल नामों के समान ही हैं .php
विस्तार।
1) m150311_012031_create_place_table.php
फ़ाइल का नाम बदलें m150311_020901_create_meeting_table.php
और कक्षा का नाम class m150311_020901_create_meeting_table
.
2) m150311_020901_create_meeting_table.php
फ़ाइल का नाम बदलें m150311_012031_create_place_table.php
और कक्षा का नाम class m150311_012031_create_place_table
.