Laravel 5.5 다중 마이그레이션에서 \'기본 테이블 또는 뷰가 이미 존재합니다\' 오류를 해결하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-23 15:51:17
원래의
329명이 탐색했습니다.

How to Resolve the

Laravel 5.5 오류 처리: 다중 마이그레이션에 대한 "기본 테이블 또는 뷰가 이미 존재함" 문제 해결

여러 Laravel 마이그레이션을 실행할 때 개발자는 다음과 같은 문제가 발생할 수 있습니다. "기본 테이블 또는 뷰가 이미 존재합니다" 오류. 이는 하나 이상의 마이그레이션 파일이 데이터베이스에 이미 존재하는 테이블을 생성하려고 시도할 때 발생할 수 있습니다.

문제 설명:

제공된 문제에 설명된 대로, php artisan migration을 사용하여 'users' 테이블을 마이그레이션하면 오류가 발생하고 'lists' 테이블은 생성되지 않은 상태로 유지됩니다.

문제 해결 단계:

  1. 마이그레이션 파일 검사: 'lists' 테이블을 생성하기 위한 마이그레이션 파일(예: create_lists_table.php)이 데이터베이스/migrations 디렉터리에 있는지 확인하세요.
  2. 기존 데이터베이스 확인 테이블: 데이터베이스 쿼리 도구나 명령줄을 사용하여 'users' 테이블이 데이터베이스에 이미 있는지 확인합니다. 이는 잠재적인 중복 마이그레이션 시도를 나타냅니다.
  3. 미들웨어 검토: 검사 마이그레이션 순서를 변경하거나 충돌을 일으킬 수 있는 미들웨어 파일에 대한 데이터베이스/마이그레이션 폴더.
  4. 외래 키 제약 조건 비활성화: '사용자 생성을 용이하게 하기 위해 외래 키 제약 조건을 일시적으로 비활성화합니다. ' 테이블에 오류가 없습니다.
  5. 마이그레이션 기록 분석: php artisan migration:status를 실행하여 마이그레이션 기록을 검토하고 실패했거나 중복이 생성되었을 수 있는 이전에 적용한 마이그레이션을 식별합니다.

해결책:

이 특정 사례에서 제공된 솔루션은 create_users_table.php 마이그레이션 파일을 다음과 같이 수정하는 것과 관련이 있습니다.

<code class="php"><?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::dropIfExists('users');
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}</code>
로그인 후 복사

명시적으로 지시하여 create() 이전에 dropIfExists()로 마이그레이션할 때 중복 테이블 오류가 해결되어 'users' 테이블이 성공적으로 마이그레이션될 수 있습니다. 또한 마이그레이션 실행 순서는 파일 이름으로 제어할 수 있습니다. 예를 들어 마이그레이션 파일의 이름을 2023_08_29_100000_create_users_table.php로 바꾸면 해당 파일이 2023_08_29_100000_create_lists_table.php 이전에 실행됩니다.

위 내용은 Laravel 5.5 다중 마이그레이션에서 \'기본 테이블 또는 뷰가 이미 존재합니다\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!