안녕하세요, https://laravel.com/docs/5.4/migrations에 포함 된 모든 문서를 읽으십시오 .
특정 마이그레이션 파일 (마이그레이션 1 개만 해당)을 마이그레이션하는 방법이 있습니까? 지금은 내가 사용하는 변경 사항이 php artisan migrate:refresh
있고 모든 필드가 재설정 될 때마다 발생 합니다.
안녕하세요, https://laravel.com/docs/5.4/migrations에 포함 된 모든 문서를 읽으십시오 .
특정 마이그레이션 파일 (마이그레이션 1 개만 해당)을 마이그레이션하는 방법이 있습니까? 지금은 내가 사용하는 변경 사항이 php artisan migrate:refresh
있고 모든 필드가 재설정 될 때마다 발생 합니다.
답변:
먼저 다음 migration
과 같이 테이블에 대해 하나의 파일을 만들어야 합니다.
public function up()
{
Schema::create('test', function (Blueprint $table) {
$table->increments('id');
$table->string('fname',255);
$table->string('lname',255);
$table->rememberToken();
$table->timestamps();
});
}
후 작성 시험 에서 폴더 마이그레이션 후 새로 만든 폴더 마이그레이션 에 이동 / 복사 테스트 폴더 및 사용자의 명령 아래 실행 터미널 / cmd를 같은 :
php artisan migrate --path=/database/migrations/test/
이 테이블 만 새로 고치고 실행하려면 마이그레이션 파일에 경로를 추가해야합니다.
php artisan migrate:refresh --path=/database/migrations/fileName.php
migrations
데이터베이스 의 테이블을 보면 마이그레이션 파일 이름과 배치 번호 값 목록이 있습니다.
다음과 같은 구조가 있다고 가정합니다.
id migration batch
1 2014_10_12_000000_create_users_table 1
2 2014_10_12_100000_create_password_resets_table 1
3 2016_09_07_103432_create_tabel_roles 1
2016_09_07_103432_create_tabel_roles
마이그레이션 만 롤백 하려면 마이그레이션 배치 값을 가장 높은 2로 변경하고 다음을 실행하십시오.
php artisan migrate:rollback
여기서는 배치 값이 2 인 테이블 만 롤백됩니다. 이제 해당 테이블을 변경하고 다음 콘솔 명령을 실행하십시오.
php artisan migrate
migrations
표의 배치 값 은 마이그레이션 순서를 정의합니다. 롤백하면 가장 최근의 마이그레이션이거나 가장 높은 배치 값이있는 마이그레이션이 처음에 롤백 된 다음 다른 마이그레이션이 롤백됩니다. 따라서 데이터베이스의 값을 변경 한 다음 특정 마이그레이션 파일을 롤백 할 수 있습니다.
테이블 구조 간의 관계 때문에 매번 배치 번호를 변경하는 것은 좋지 않지만 단일 테이블 롤백이 테이블 간의 무결성을 위반하지 않는 경우에 사용할 수 있습니다.
이해하길 바랍니다.
파일을 새 디렉토리 (예 : 선택됨)에 넣은 다음 적용해야합니다.
php artisan migrate --path=/database/migrations/selected
롤백이 필요한 경우 :
php artisan migrate:rollback --path=/database/migrations/selected
노트 :
php artisan migrate:refresh
롤백 한 다음 기본 디렉토리 (/ database / migrations)의 모든 마이그레이션 파일을 마이그레이션합니다.
php artisan help migrate
다음 옵션이 표시됩니다.
--path [= PATH] 실행할 마이그레이션 파일의 경로
그런데 마이그레이션하려는 파일의 루트 폴더를 나타낼 수 있습니다.
php artisan migrate --path=/database/migrations/sample.php
또는 마이그레이션에서 새 폴더를 만든 다음 원하는 모든 마이그레이션 파일을 마이그레이션 할 수 있습니다.
php artisan migrate --path=/database/migrations/new_folder
다음과 같은 경우에만 롤백 할 수 있습니다.
php artisan migrate:rollback
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
'단계'옵션을 사용하여 롤백 할 마이그레이션 수를 지정할 수 있습니다.
php artisan migrate:rollback --step=1
여기에서 몇 가지 트릭을 사용할 수 있습니다.
하나의 특정 테이블을 생성하려는 경우. 이 코드를 사용할 수 있습니다. laravel (5.x) 버전에서 작동합니다.
php artisan migrate:refresh --path=/database/migrations/fileName.php
다른 테이블을 생성하려면 새 마이그레이션 파일을 생성하기 만하면됩니다. 작동합니다.
당신은라는 이름의 마이그레이션을 만드는 경우 users_table
와를 id, first_name, last_name
. 다음과 같은 마이그레이션 파일을 만들 수 있습니다.
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name',255);
$table->string('last_name',255);
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
마이그레이션하지 않고 "status"와 같은 다른 파일을 추가하려는 경우 : 새로 고침. "add_status_filed_to_users_table"과 같은 다른 마이그레이션 파일을 만들 수 있습니다.
public function up()
{
Schema::table('users', function($table) {
$table->integer('status');
});
}
롤백 옵션을 추가하는 것을 잊지 마십시오.
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('status');
});
}
를 사용하여 마이그레이션을 실행 php artitsan migration
하면 새 마이그레이션 파일 만 마이그레이션됩니다.
그러나 첫 번째 관리 파일 (users_table)에 "status"파일을 추가하고 마이그레이션을 실행하면. 마이그레이션 할 것이 없습니다. 를 실행해야합니다 php artisan migrate:refresh
.
이 도움을 바랍니다.
이 패키지 설치
https://github.com/nilpahar/custom-migration/
이 명령을 실행하십시오.
php artisan migrate:custom -f migration_name
이것을 사용할 수 있습니다.
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
이것은 사용하기 매우 쉽습니다
이 명령은 터미널에서만 실행할 수 있습니다.
php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php
마이그레이션 후에는 특정 파일 이름을 입력해야합니다. 또는 마이그레이션 내에 폴더가있는 경우 마이그레이션 후에 해당 폴더 이름을 추가하십시오.
이렇게
php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php
나는 이것이 당신에게 조금 도움이되기를 바랍니다. 행복한 코딩.
먼저 다음 명령을 작성해야합니다.
1 단계:
php artisan migrate:rollback
2 단계:
php artisan migrate
테이블은 데이터베이스로 돌아갑니다.
php artisan migration:refresh
같은 역할을합니다.