>  기사  >  백엔드 개발  >  Laravel 5.4 프레임워크에서 특수 필드가 너무 길어서 발생하는 마이그레이션 오류 문제를 해결하는 방법

Laravel 5.4 프레임워크에서 특수 필드가 너무 길어서 발생하는 마이그레이션 오류 문제를 해결하는 방법

黄舟
黄舟원래의
2017-10-24 09:07:001857검색

머리말

이 글은 Laravel 5.4에서 너무 긴 특수 필드로 인해 보고된 마이그레이션 오류에 대한 관련 내용을 주로 소개합니다. 모두의 참고와 학습을 위해 공유합니다. 자세한 소개:

laravel 5.4에서는 기본 데이터베이스 문자 집합이 변경되었습니다. 이제 utf8mb4에는 이모티콘 저장 지원이 포함됩니다. MySQL에는 v5.7.7 이상이 필요합니다. 일부 MariaDB 또는 일부 이전 버전의 MySQL에서 마이그레이션 명령을 실행하려고 하면 다음 오류가 발생합니다.


 [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 `use
 rs_email_unique`(`email`))
 
 [PDOException]
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Solution

쿼리 후 AppServiceProvider.php 파일의 부팅 방법에서 기본값을 설정할 수 있습니다:


<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
//添加的代码
use Illuminate\Support\Facades\Schema;
 
class AppServiceProvider extends ServiceProvider
{
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
  //添加的代码
  Schema::defaultStringLength(191);
 }
 
 /**
  * Register any application services.
  *
  * @return void
  */
 public function register()
 {
  //
 }
}

위 내용은 Laravel 5.4 프레임워크에서 특수 필드가 너무 길어서 발생하는 마이그레이션 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.