이 글은 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('articles', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('articles'); } }
id 열은 자동으로 추가되고 자동으로 커집니다. timestamps()는 자동으로 두 개의 시간 열(created_at 및 selected_at)을 생성합니다. 몇 가지 필드를 추가합니다:
public function up() { Schema::create('articles', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamp('published_at'); $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='articles'
이제 up 메소드에 초기 코드가 있습니다.
public function up() { Schema::table('articles', function(Blueprint $table) { // }); }
실제 데이터 수정 코드 추가:
public function up() { Schema::table('articles', function(Blueprint $table) { $table->text('excerpt')->nullable(); }); } public function down() { Schema::table('articles', function(Blueprint $table) { $table->dropColumn('excerpt'); }); }
nullable()은 필드가 null일 수도 있음을 의미합니다.
이전을 다시 실행하고 데이터베이스를 확인하세요.
재미로 롤백하면
php artisan migrate:rollback
발췌란이 없어졌습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
Laravel5 프레임워크의 하위 뷰 및 양식 재사용 분석
위 내용은 Laravel 5의 데이터베이스 마이그레이션에 대해 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!