ทางเลือกอื่นสำหรับสิ่งที่กล่าวถึงหากคุณต้องการทำสิ่งนี้หลายครั้งด้วยการโยกย้ายเดียวกัน โดยส่วนตัวแล้วฉันคิดว่านี่เป็นการเพิ่มความยืดหยุ่นให้กับการย้ายข้อมูลของคุณ
เพิ่ม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และไฟล์จะทำการโอนย้ายไฟล์นั้นเท่านั้น
กระบวนการนี้ช่วยให้คุณสามารถทำการเปลี่ยนแปลงเฉพาะกับการย้ายข้อมูลโดยไม่ต้องทำการรีเฟรชเต็มรูปแบบและเริ่มต้นแต่ละครั้ง
โดยส่วนตัวฉันต้องทำอย่างนั้นเพราะเมล็ดของฉันค่อนข้างใหญ่