*LAMP or LEMP 스택을 이미 구축한 상태임을 전제합니다.
본 포스팅의 주제는 Mysql 연동과 Database 마이그레이션입니다.
1. Mysql 접속, Database 생성
DB 생성은 workbench 혹은 phpMyAdmin 등의 별도 도구를 이용해도 무방합니다만, 본 포스팅에서는 터미널을 통해 직접 생성해 보겠습니다.
먼저 터미널을 엽니다.
$ mysql -u root -p
본 예제에서는 root 권한으로 mysql에 접속합니다. 터미널 커멘드에 mysql> 표시가 보이면 접속한 것입니다.
(필자의 경우 root 권한을 그대로 이용하는 것보다는 별도의 유저 계정을 생성해서 진행하는 것을 권장합니다만, 본 글에서는 편의를 위해 root 계정을 통해 구축하겠습니다.)
예시를 위해 test_database라는 이름의 데이터 베이스를 생성합니다.
mysql> create database test_database;
mysql> flush privileges;
mysql> exit
위 명령어를 순차적으로 입력합니다. Query OK, ~ 로 시작하는 문장이 반환되면 정상적으로 명령어가 실행된 것입니다. 만약, query ok를 반환하지 않는다면 입력 쿼리문을 살펴보세요.
2. Laravel 프로젝트 .env 파일 세팅
프로젝트 디렉터리로 이동해 .env 파일을 열고 DB_ 로 시작하는 항목을 수정합니다.
해당 내용의 초기값은 아래와 같습니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
위 항목 중 포트번호 3306은 mysql의 기본 포트번호입니다.
만약, 본 가이드와 다르게 별도의 db 설정을 하셨다면 그에 맞게 기입해 주셔야 합니다.
이 중, database를 1번에서 생성했던 test_database로 바꿔 줍니다.
DB_DATABASE=test_database;
DB_USERNAME, DB_PASSWORD도 본인의 환경에 맞게 입력하고 저장합니다.
(DB_HOST는 로컬에서 구축하는 경우에는 수정할 필요가 없습니다.)
3. DB 마이그레이션 - 마이그레이션 파일 생성
다시 터미널로 돌아와 프로젝트 폴더로 이동합니다.
프로젝트 폴더로 이동하면 php artisan 명령어가 사용 가능합니다.
php artisan을 통해 샘플 php 데이터베이스 스크립트를 생성합니다.
$ php artisan make:migration create_memos_table;
여기서 파일 양식은 반드시 create_[테이블명]_table 이와 같은 형태로 맞춰주어야 합니다.
위 명령어를 통해 [your project folder]/database/migrations 경로에 memos 테이블 생성 스크립트가 간단히 생성됩니다.
create_memos_table.php 이외의 파일은 laravel 설치 시, 기본적으로 포함하고 있는 마이그레이션 파일입니다.
이제, create_memo_table.php를 IDE 및 에디터를 통해 열어봅니다.
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMemosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('memos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('memos');
}
}
파일을 열면 기본적으로 위와 같이 테이블을 생성하고 드롭하는 내용이 포함되어 있습니다.
여기서 content라는 텍스트 칼럼을 500byte 길이로 생성해보겠습니다.
up 함수의 스키마 클래스 부분을 아래와 같이 추가합니다.
Schema::create('memos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('content',500);
$table->timestamps();
});
이제 저장하고 다시 터미널로 돌아갑니다.
4. DB 마이그레이션 - 테이블 적용
다음의 명령어를 통해 DB에 마이그레이션을 진행합니다.
$ php artisan migrate
터미널에서 마이그레이션 진행 상황을 출력해줍니다.
mysql-workbench를 통해 컬럼 추가 작업까지 정상적으로 반영된 것을 확인할 수 있습니다.
다음 포스팅에서는 Laravel 프로젝트에서 방금 생성한 DB를 통한 기본적인 MVC 패턴 구성에 대해 작성할 예정입니다.
'Dev > PHP' 카테고리의 다른 글
[PHP] Laravel - Target class [] does not exist. 문제 해결 (0) | 2020.09.20 |
---|---|
[PHP] Laravel - smtp를 이용한 메일 전송 구현 (0) | 2020.09.19 |
[PHP] Arch Linux에서의 LEMP 스택 + Laravel 개발 환경 설치 매뉴얼 (0) | 2020.09.16 |
[PHP] Laravel에서의 MVC 패턴 구현 (6) | 2020.03.03 |
[PHP] Ubuntu Linux에서의 LEMP 스택 + Laravel 개발 환경 설치 매뉴얼 (0) | 2020.02.01 |