동일한 마이그레이션으로이 작업을 여러 번 수행해야하는 경우 언급 된 항목에 대한 또 다른 대안입니다. 개인적으로 이것은 마이그레이션에 많은 유연성을 추가한다고 생각합니다.
다음 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
만 마이그레이션합니다.
이 프로세스를 사용하면 매번 전체 새로 고침 및 시드를 수행하지 않고도 마이그레이션을 구체적으로 변경할 수 있습니다.
내 씨앗이 다소 크기 때문에 개인적으로 나는 그것을 많이해야합니다.