Еще одна альтернатива упомянутым, если вам нужно делать это несколько раз с одними и теми же миграциями. Лично я думаю, что это добавляет гибкости вашей миграции.
Добавьте database/migrations
к вашему объекту автозагрузки в вашем 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
и он перенесет только этот.
Этот процесс позволяет вносить конкретные изменения в миграции без необходимости каждый раз выполнять полное обновление и заполнение.
Лично мне нужно делать это много, потому что мои семена довольно большие.