【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メソッドが行った操作を元に戻します
今回はtitle
とdeadline
カラムを追加してみます。
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テーブルが作成されているのが確認できました!
ここまでで環境の準備ができたので、次はいよいよLaravelの勉強で簡単なタスク管理を行うWebアプリを作ってみようと思います!