오늘은 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 이라고 입력해주면
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
라라벨 코리아의 마이그레이션 부분을 읽어보시면 더 도움이 되실겁니다.
이것으로 마치겠습니다.
'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 |
댓글