Laravel 마이그레이션 오류: "지정된 키가 너무 깁니다" 문제 해결
Laravel 5.4의 php artisan make:auth를 사용하려고 할 때 명령을 실행하면 사용자는 다음과 같은 상황을 겪을 수 있습니다. 오류:
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
원인:
인덱스 키의 길이가 데이터베이스 엔진에 허용되는 최대 길이를 초과하는 경우 오류가 발생합니다. 기본적으로 MySQL 및 그 변형의 최대 인덱스 키 길이는 767바이트입니다.
해결책:
방법 1: 애플리케이션 서비스 공급자 업데이트
공식 Laravel 문서에서 권장하는 대로 다음 코드를 app/Providers/AppServiceProvider.php 파일:
use Illuminate\Support\Facades\Schema; /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
이렇게 하면 모든 마이그레이션의 기본 문자열 길이가 허용되는 한도 내인 191자로 늘어납니다.
방법 2: InnoDB Large Prefix 활성화
또는 사용자가 MySQL 데이터베이스에 대한 innodb_large_prefix 옵션. 이 옵션을 올바르게 활성화하는 방법에 대한 지침은 데이터베이스 설명서를 참조하세요. 이 솔루션은 더 긴 인덱스 키를 허용하므로 더 큰 데이터 세트에 더 적합합니다.
위 내용은 Laravel 마이그레이션 오류: '지정된 키가 너무 깁니다' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!