본문 바로가기
IT/PHP

PHP/Laravel(6) 데이터베이스 연결 및 생성

by Sungjun_ 2020. 2. 21.

오늘은 Laravel 데이터베이스 연결을 해보겠습니다.

 

먼저 .env 파일을 열어줍니다.

 

그럼 그 안에

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

이렇게 돼있는 곳이 있습니다.

 

저 같은 경우에는 mysql을 사용하고 있고 포트도 3306이기 때문에 따로 바꾸지 않고 넘어가겠습니다.

 

그리고 MySQL Workbench를 사용해 laravel이라는 데이터베이스를 만들었습니다.

 

 

 

그리고 라라벨은 자체적으로 테이블을 만들어 데이터베이스에 넣어 줄 수 있습니다.

 

database 폴더 안에 migrations 폴더를 열어주면

현재 이런 식으로 기본적으로 있는 파일들이 보입니다.

 

그럼 그 중에서 2014_10_12_000000_create_users_table.php 이 파일을 열어보겠습니다.

 

<?php

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

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

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

 

그럼 현재 class 안에 up, dowm 함수가 있는 것을 볼 수 있습니다.

up은 데이터베이스에 테이블, 컬럼, 인덱스를 추가하는데 사용되고

down은 up 메소드의 동작을 취소합니다.

 

기본 적으로 제공되는 이 테이블들을 방금만든 laravel 데이터베이스에 넣어보겠습니다.

 

저는 vscode의 터미널을 사용하겠습니다.

 

터미널에 php artisan migrate 이렇게 입력을 하고 엔터를 치면

 

 

이렇게 migrations 폴더 안에 있는 파일들이 제대로 migration 된 것을 볼 수 있습니다.

 

이제 DB로 가서 확인해봅시다.

테이블이 제대로 추가된 것을 볼 수 있습니다.

 

migration 테이블이 궁금하실텐데 

안에 정보를 보면

방금 migration한 정보들이 들어가 있는 것을 볼 수 있습니다.

 

이제 방금 넣은 테이블들을 삭제하고고 직접 테이블을 만들어 migation 해보겠습니다.

 

터미널에 php artisan migrate:reset 이라고 입력해주면

 

reset 결과

 

테이블

migrations 테이블을 제외하고 모두 삭제된 것을 볼 수 있습니다.

물론, migrations 테이블 안의 정보들도 모두 삭제됐습니다.

 

이제 터미널에 php artisan make:migration create_users_table 이렇게 입력해줍시다.

create_()_table 크리에이트와 테이블 사이에 원하는 테이블 이름을 넣어주시면 됩니다.

 

 

이렇게 성공 메세지가 뜨고

migrations 폴더 안에 파일이 생성된 것을 볼 수 있습니다.

 

 

그 안에 다음과 같이 입력했습니다.

<?php

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

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

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

 

bigIncrements는 autoincrement와 primary 키를 정해주는 것이라 생각하시면 됩니다.

string은 옵션값을 길이로 하는 VARCHAR 컬럼.

rememberToken은 nullable (null 값이 허용되는) remember_token VARCHAR(100) 컬럼

timestamps는 nullable (null 값이 허용되는) created_at  updated_at TIMESTAMP 컬럼

 

 

이제 터미널에 php artisan migrate을 치면

만들어진 것을 확인할 수 있습니다.

 

 

 

마이그레이션 관련해서

https://laravel.kr/docs/6.x/migrations

 

라라벨 6.x - 마이그레이션

라라벨 한글 메뉴얼 6.x - 마이그레이션

laravel.kr

라라벨 코리아의 마이그레이션 부분을 읽어보시면 더 도움이 되실겁니다.

 

 

 

이것으로 마치겠습니다.

'IT > PHP' 카테고리의 다른 글

PHP/Laravel(8) CRUD#1  (0) 2020.02.22
PHP/Laravel(7) 모델  (0) 2020.02.21
PHP/Laravel(5) 컨트롤러  (0) 2020.02.21
PHP/Laravel(4) 컴포넌트&슬롯  (0) 2020.02.20
PHP/Laravel(3) blade 문법  (0) 2020.02.20

댓글