>  기사  >  백엔드 개발  >  Laravel 5의 데이터베이스 마이그레이션에 대해 알아보기

Laravel 5의 데이터베이스 마이그레이션에 대해 알아보기

不言
不言원래의
2018-06-13 17:16:241316검색

이 글은 Laravel5 프레임워크의 가장 강력한 기능 중 하나인 데이터베이스 마이그레이션을 소개합니다. 이 글은 데이터베이스 마이그레이션의 단계와 방법을 자세히 소개하며 도움이 필요한 친구들이 참고할 수 있습니다.

데이터베이스 마이그레이션은 laravel의 가장 강력한 기능 중 하나입니다. 데이터베이스 마이그레이션은 데이터베이스의 버전 컨트롤러로 이해될 수 있습니다.

database/migrations 디렉터리에는 두 개의 마이그레이션 파일이 포함되어 있습니다. 하나는 사용자 테이블을 생성하고 다른 하나는 사용자 비밀번호 재설정을 위한 것입니다.

migration 파일에서는 up 메소드를 사용하여 데이터 테이블을 생성하고, down 메소드를 사용하여 롤백, 즉 데이터 테이블을 삭제합니다.

데이터베이스 마이그레이션 실행

php artisan migrate
#输出
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

mysql 데이터베이스를 보면 3개의 테이블이 생성된 것을 확인할 수 있습니다. migratoins 테이블은 마이그레이션 기록 테이블, users 및 pasword_resets입니다.

설계에 문제가 있으면 데이터베이스 롤백을 수행하세요

php artisan migrate:rollback
#输出
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table

mysql 데이터베이스를 다시 보면 마이그레이션 테이블만 남고, 사용자 비밀번호_재설정이 삭제되었습니다.

마이그레이션 파일을 수정하고 마이그레이션을 다시 수행하세요.

새 마이그레이션

php artisan make:migration create_article_table --create='articles'
#输出
Created Migration: 2015_03_28_050138_create_article_table

데이터베이스/마이그레이션 아래에 새 파일이 생성됩니다.

<?php

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

class CreateArticleTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
  $table->timestamps();
 });
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 Schema::drop(&#39;articles&#39;);
 }

}

id 열은 자동으로 추가되고 자동으로 커집니다. timestamps()는 자동으로 두 개의 시간 열(created_at 및 selected_at)을 생성합니다. 몇 가지 필드를 추가합니다:

 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
      $table->string(&#39;title&#39;);
      $table->text(&#39;body&#39;);
      $table->timestamp(&#39;published_at&#39;);
  $table->timestamps();
 });
 }

마이그레이션 실행:

php artisan migrate

이제 새로운 데이터 테이블이 생겼습니다.

새 필드를 추가해야 한다고 가정해 보겠습니다. 롤백한 다음 마이그레이션 파일을 수정하고 마이그레이션을 다시 수행하거나 새 마이그레이션 파일을 직접 만들 수 있습니다.

php artisan make:migration add_excerpt_to_articels_table

새로 생성된 마이그레이션 파일 보기

<?php

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

class AddExcerptToArticelsTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 //
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 //
 }

}

비워 올리는 방법과 내리는 방법만 있습니다. 코드를 수동으로 추가하거나 Laravel이 기본 코드를 생성하도록 할 수 있습니다. 이 파일을 삭제하고 마이그레이션 파일을 다시 생성한 후 매개변수 추가에 주의하세요.

php artisan make:migration add_excerpt_to_articels_table --table=&#39;articles&#39;

이제 up 메소드에 초기 코드가 있습니다.

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  //
 });
 }

실제 데이터 수정 코드 추가:

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->text(&#39;excerpt&#39;)->nullable();
 });
 }
 
 public function down()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->dropColumn(&#39;excerpt&#39;);
 });
 }

nullable()은 필드가 null일 수도 있음을 의미합니다.

이전을 다시 실행하고 데이터베이스를 확인하세요.

재미로 롤백하면

php artisan migrate:rollback

발췌란이 없어졌습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

Laravel5 프레임워크의 하위 뷰 및 양식 재사용 분석

Laravel 4의 페이지 및 양식 유효성 검사

위 내용은 Laravel 5의 데이터베이스 마이그레이션에 대해 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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