Laravel5.2의 데이터베이스 마이그레이션 및 데이터 채우기 예시

黄舟
풀어 주다: 2023-03-15 21:46:01
원래의
1658명이 탐색했습니다.

1. 데이터베이스 마이그레이션

Laravel의 데이터베이스 마이그레이션은 데이터베이스, 테이블, 필드 및 인덱스에 대한 일련의 관련 작업을 제공합니다. 다음은 친숙한 링크 테이블을 생성하는 예입니다.

1. 마이그레이션 생성

Artisan 명령을 사용하세요. php artisan make:migration create_links_table

이렇게 하면 데이터베이스/마이그레이션 디렉터리에 2017_05_06_151645_create_links_table.php라는 파일이 생성됩니다. 이름 "2017_05_06_151645_"의 전반부는 Laravel이 추가한 타임스탬프입니다. "create_links_table.php"의 후반부는 테이블 이름입니다.

2. 로직 작성

그런 다음 마이그레이션 클래스 2017_05_06_151645_create_links_table.php를 엽니다. 거기에는 up()과 down()이라는 두 가지 메소드가 있습니다. up() 메서드는 테이블을 생성하고 down() 메서드는 테이블을 삭제합니다.


<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateLinksTable extends Migration
{
    /**
     * 执行迁移
     *
     * @return void
     */
    public function up()
    {
        Schema::create(&#39;links&#39;, function (Blueprint $table){
            $table->engine = &#39;MyISAM&#39;;
            $table->increments(&#39;id&#39;);
            $table->string(&#39;name&#39;)->default(&#39;&#39;)->comment(&#39;名称&#39;);
            $table->string(&#39;title&#39;)->default(&#39;&#39;)->comment(&#39;标题&#39;);
            $table->string(&#39;url&#39;)->default(&#39;&#39;)->comment(&#39;地址&#39;);
            $table->integer(&#39;sort&#39;)->default(50)->comment(&#39;排序&#39;);
        });
    }
    
    /**
     * 回滚迁移
     *
     * @return void
     */
    public function down()
    {
        Schema::drop(&#39;links&#39;);
    }
}

2017_05_06_151645_create_links_table.php
로그인 후 복사

3. 마이그레이션 실행

Artisan 명령어 사용 php artisan migration

이제 데이터베이스에 마이그레이션을 기록하는 hd_links 테이블과 hd_migrations 테이블이 생성되었습니다. ("hd_"는 구성된 테이블 접두사입니다) :

참고: 마이그레이션 클래스를 수동으로 삭제하고 파일을 다시 생성할 수 없는 경우, Composer dump-autoload 명령을 사용하여 자동 로딩을 최적화하면 마이그레이션을 다시 생성할 수 있습니다.

2. 데이터 채우기

는 데이터베이스의 테이블에 대한 일부 데이터를 채우는 테스트에 사용될 수 있습니다.

1. 패딩 만들기

Artisan 명령을 사용하세요. php artisan make:seeder LinksTableSeeder

이렇게 하면 데이터베이스/seeds 디렉터리에 LinksTableSeeder.php라는 친숙한 링크 패딩 클래스가 생성됩니다.

2. 로직 작성

그런 다음 이 LinksTableSeeder.php 파일을 열고 두 개의 테스트 레코드를 추가합니다.


<?php
use Illuminate\Database\Seeder;
class LinksTableSeeder extends Seeder
{
    /**
     * 运行数据库填充
     *
     * @return void
     */
    public function run()
    {
        $data = [
            [
                &#39;name&#39; => &#39;Laravel 中文社区&#39;,
                &#39;title&#39; => &#39;Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub&#39;,
                &#39;url&#39; => &#39;https://laravel-china.org/&#39;,
                &#39;sort&#39; => &#39;49&#39;
            ],
            [
                &#39;name&#39; => &#39;GitHub&#39;,
                &#39;title&#39; => &#39;GitHub is where people build software. More than 21 million people use...&#39;,
                &#39;url&#39; => &#39;https://github.com&#39;,
                &#39;sort&#39; => &#39;49&#39;
            ]
        ];

        DB::table(&#39;links&#39;)->insert($data);
    }
}
로그인 후 복사

3. 채우기 호출

database/seeds 디렉토리에 있는 데이터베이스 채우기 클래스 DatabaseSeeder.php에서 run() 메서드 채우기를 호출합니다.

DatabaseSeeder.php 파일 콘텐츠:


<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
    /**
     * 运行数据库填充
     *
     * @return void
     */
    public function run()
    {
        $this->call(LinksTableSeeder::class);
    }
}
로그인 후 복사

4. 채우기 수행

Artisan 명령 사용 php artisan db:seed

이제 데이터베이스의 hd_links 테이블에는 2개의 레코드가 있습니다.

위 내용은 Laravel5.2의 데이터베이스 마이그레이션 및 데이터 채우기 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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