> PHP 프레임워크 > Laravel > laravel에서 테이블 구조를 변경하는 방법

laravel에서 테이블 구조를 변경하는 방법

藏色散人
풀어 주다: 2021-12-31 11:59:34
원래의
2326명이 탐색했습니다.

laravel에서 테이블 구조를 변경하는 방법: 1. 마이그레이션 파일을 생성합니다. 2. "php artisan make:migration..." 명령을 실행합니다. 3. "$table->text('images')->를 추가합니다. ;nullable( )..." 그게 전부입니다.

laravel에서 테이블 구조를 변경하는 방법

이 기사의 운영 환경: Windows 7 시스템, Laravel 버전 5.7, Dell G3 컴퓨터.

laravel에서 테이블 구조를 변경하는 방법은 무엇입니까?

larava 마이그레이션을 사용하여 데이터베이스 테이블 구조 수정

저는 SQL 파일을 사용하여 데이터베이스 테이블 구조의 변경 사항을 저장하고 추적해 왔습니다. 그러나 SQL 파일을 사용하면 다음과 같은 단점이 있습니다.

  • 어떤 SQL 파일이 실행되었고 어떤 파일이 실행되지 않았는지 판단하는 것은 불가능합니다. sql 파일 이름 접두사로 날짜가 추가되지만, 여러 사람이 개발하고 온라인 데이터 테이블 구조가 오랫동안 업데이트되지 않으면 머리를 긁적여야 하는 경우가 많습니다

  • SQL 파일을 실행하는 것이 물리적인 작업입니다 . 12개가 넘는 SQL 변경 파일에 직면했을 때 하나씩 실행하는 것은 매우 피곤한 작업입니다.

  • 여러 개발 및 프로덕션 환경을 동기화하는 것은 여전히 ​​시간이 많이 걸리고 힘든 작업입니다. 예를 들어 PC 개발 머신에 수정을 가해 노트북 개발 환경과 동기화해야 한다면 생각하기가 불편하다.

이러한 문제는 일련의 마이그레이션을 실행하는 것보다 훨씬 덜 즐겁습니다.

새 필드 추가

예를 들어 기사 테이블에 이미지 필드를 추가하고 싶습니다.

먼저 마이그레이션 파일을 생성해야 합니다.

php artisan make:migration add_images_to_articles_table --table=articles
로그인 후 복사

명령을 실행하면

Created Migration: 2018_03_21_225819_add_images_to_articles_table
로그인 후 복사

파일이 해당 데이터베이스/migrations/ 디렉터리에 자동으로 생성됩니다

database/migrations/2018_03_21_225819_add_images_to_articles_table.php
로그인 후 복사

파일 이름이 날짜와 시간이 앞에 붙습니다.

public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->text('images');
});
}
로그인 후 복사

공식 문서에 따라 이미지 필드를 추가하고 변경 사항을 저장하세요.

php artisan migrate
로그인 후 복사

명령을 실행하고

Migrating: 2018_03_21_225819_add_images_to_articles_table
Migrated:  2018_03_21_225819_add_images_to_articles_table
로그인 후 복사

를 출력합니다. 그런 다음 데이터 테이블 마이그레이션을 확인하면 추가 레코드 행을 찾을 수 있습니다.

laravel에서 테이블 구조를 변경하는 방법

그런 다음 변경 사항을 프로덕션 환경에 동기화합니다. 유일한 차이점은 프로덕션 서버가 명령 실행 여부를 확인하도록 요청한다는 것입니다.

**************************************
*     Application In Production!     *
**************************************
 Do you really wish to run this command? (yes/no) [no]:
 > yes
Migrating: 2018_03_21_225819_add_images_to_articles_table
Migrated:  2018_03_21_225819_add_images_to_articles_table
로그인 후 복사

필드 수정

이것은 급하게 출시되지 않으며 500개의 오류가 발생합니다

SQLSTATE[HY000]: General error: 1364 Field 'images' doesn't have a default value
로그인 후 복사

문제를 해결하려면 새 마이그레이션 파일을 만들고

$table->text('images')->nullable()->change();
로그인 후 복사

를 추가한 후 온라인으로 다시 마이그레이션을 실행하기만 하면 됩니다.

관련 추천: 최신 5개의 Laravel 비디오 튜토리얼

위 내용은 laravel에서 테이블 구조를 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿