【Laravel】データベースにテーブルを作成する

前回まででLaravelの初期画面表示とデータベースへの接続確認ができたので、今回はデータベースにテーブルを作成します!

まだLaradockでのセットアップが終わっていない方は前回のこちらの記事を参考にしてください。
coxcox.hatenablog.com

マイグレーションファイルを作成する

マイグレーションファイルの作成はworkspaceコンテナ上で行います。

$ cd laradock
$ docker-compose exec --user=laradock workspace bash

データベースを管理するためのマイグレーションファイルを作成します。

/var/www$ php artisan make:migration <マイグレーションファイル名> --create=<テーブル名>

実際のコマンドはこんな感じです。

/var/www$ php artisan make:migration create_tasks_table --create=tasks

コマンド実行後、Laravelプロジェクト内の「database/migaration」配下にマイグレーションファイルが作成されます。

ファイルを開くとup()down() 2つのメソッドがあります。

  • up() ・・新しいテーブル、カラム、インデックスをデータベースに追加します
  • down() ・・upメソッドが行った操作を元に戻します

今回はtitledeadlineカラムを追加してみます。

database/migaration/xxx_create_tasks_table.php

<?php

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

class CreateTasksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title'); // 追加
            $table->date('deadline'); // 追加
            $table->timestamps();
        });
    }

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

データベースへの接続設定を変更する

別ターミナルを開いて、Laravelプロジェクト内の.envファイルを書き換えます。

$ cd <Laravelプロジェクト>
$ vim .env
DB_CONNECTION=mysql
DB_HOST=mysql // Laradockのmysqlを指定する
DB_PORT=3306
DB_DATABASE=laravel // Laradockの.envファイルで設定したデータベースを指定する
DB_USERNAME=root // Laradockの.envファイルで設定したユーザー名を指定する
DB_PASSWORD=root // Laradockの.envファイルで設定したパスワードを指定する

マイグレーションファイルを実行する

最後にworkspaceコンテナ上でマイグレーションファイルを実行してテーブルを作成します。

/var/www$ php artisan migrate
Migration table created successfully.

データベースに接続してtasksテーブルが作成されているのが確認できました! f:id:aym413:20190620152901p:plain


ここまでで環境の準備ができたので、次はいよいよLaravelの勉強で簡単なタスク管理を行うWebアプリを作ってみようと思います!