반응형
라라벨:특정 데이터베이스 엔진만 대상으로 마이그레이션 실행
NAT의 코드베이스는 현재 mariadb 클러스터 백엔드(10.4)에 있으며, 이를 통해 DigitalOcean의 관리 데이터베이스(mySQL 8)도 활용할 수 있어야 합니다.
Laravel의 password_resets 마이그레이션에는 DO Managed DB에서만 문제가 되는 PK가 포함되어 있지 않으며 문제가 있는 마이그레이션에 다음을 추가하여 일시적으로 무시하도록 설정할 수 있습니다.
DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");
안타깝게도 mariaDB는 이 문을 이해하지 못하기 때문에 "UNKNOWN system variable"이라는 오류를 발생시킵니다.
특정 데이터베이스 엔진 버전에서 문을 대상으로 지정하거나 오류가 발생할 경우 문을 무시하도록 허용하려면 어떻게 해야 합니까?
다음 행을 mysql 연결에 추가하여 수정했습니다.config/database.php
'mysql8' => env('DB_MYSQL8', false),
그런 다음 체크를 추가합니다.create_password_resets_table
~하듯이
if(config('database.connections.mysql.mysql8')) {
DB::statement("SET SQL_REQUIRE_PRIMARY_KEY = OFF;");
}
마지막으로 데이터베이스가 DO Managed Databases에서 실행 중인 경우 다음을 .env에 추가합니다.
DB_MYSQL8=true
언급URL : https://stackoverflow.com/questions/66987914/laravel-only-run-migration-targeting-a-specific-database-engine
반응형
'source' 카테고리의 다른 글
오류: Android 응용 프로그램 모듈의 Gradle 구성을 구문 분석할 수 없습니다. (0) | 2023.06.06 |
---|---|
bto3 S3에 연결할 때 자격 증명을 지정하는 방법은 무엇입니까? (0) | 2023.06.06 |
mariadb에서 구체적인 정보를 갖는 방법.오류 [Python (0) | 2023.06.06 |
명명된 범위 범위 변경 방법 (0) | 2023.06.06 |
ggplot에서 선 너비를 변경하는 방법은 무엇입니까? (0) | 2023.06.06 |