Laravel

Laravelでデータベースを作成する方法(マイグレーション)

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

この記事では、Laravel でデータベースを作成する手順についてまとめました。

Laravel にはマイグレーションのシステムで簡単にデータベースを作成することができます。

はじめに

Laravel には、マイグレーションシステムがあります。

マイグレーションとは、データベースのバージョンをコントロールするような機能となっています。

このマイグレーションがないと、例えばローカルでデータベースを共有したいようなとき、全く同じデータベースを手作業で作成しなければなりません。

そのあたりを、解決しているのがこのマイグレーションとなります。

この記事は、Laravel の公式ドキュメントの「マイグレーション」という記事を要約したものとなります。

https://readouble.com/laravel/6.x/ja/migrations.html

前提条件

すでに Laravel をインストールしている状態であること。

MAMP でデータベースを作成します

(基本的にどこでデータベースを作成しても、ローカルのポートさえ間違わなければ Laravel の設定は同じになると思います)

⇨ Laravel+MAMP による環境構築

⇨ データベースの接続方法に特化した記事を書きました

Laravel+Vue で環境構築した記事はこちら

データベースを作成する手順

MAMP の phpMyAdmin でデータベースを作成する

phpMyAdmin の画面で左のメニューの上の方にある新規作成を押します。

すると右の画面にこういう表示が出てくるので、

データベース名:test_db

型:utf8mb4unicodeci← 下から2番目のやつ

にしてください。参考画像

phpmyadminの画面

これで作成を押すと、空のデータベースが作成されます。

この時入力した、test_db がデータベース名となります。

上の方に書かれている 8889 がポート名、となります。

phpmyadminの画面

以上が、phpmyadmin の画面での作業となります。

Laravel の.env ファイルを修正

.env ファイルは、Laravel プロジェクトのルートディレクトリにあります。

(ルートディレクトリっていうのは、Laravel プロジェクトの一番上のディレクトリってことです。)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=test_db
DB_USERNAME=root
DB_PASSWORD=root

さきほど作成したテーブル名、ポート、ユーザーネームとパスワードを設定します。

ユーザーネームとパスワードは、MAMP の初期設定が root になっているので、このように書きます。

コマンドで

php artisan config:clear

を打って、env ファイルの変更を反映させます。

接続確認

Laravel には最初からマイグレーションファイルが何個か用意されています。

なので、それを使って、接続できるか確認します。

方法は、コマンド 1 個です。

php artisan migrate

このコマンドをして、画像のようになれば OK です。

マイグレーションの画像

こうならない場合は、どこかの作業を間違っている可能性があるので確認してみてください。

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

マイグレーションファイルを作成します。

今回は、「posts」というテーブルを作成します。

コマンド一発です。

php artisan make:migration create_posts_table

うまくいけば、database/migrations フォルダにファイルが作成されていると思います。

この辺りのコマンドは、公式ドキュメントに書いてあり、その通り打ってます。

⇨ 公式ドキュメント

マイグレーションファイルを編集する

作成されたマイグレーションファイルを開くと、最初から色々と書かれていると思います。

なので、そこに追記する形でこんな感じで書いてみます。

Schema::create('posts', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('title');
    $table->string('contents');
    $table->timestamps();
});

3 行目、4 行目以外は最初に書いてあったものです。

title,contents の二つのカラムを作成します。

マイグレーションファイルを作成したら、

php artisan migrate

このコマンドでテーブルを作成することができます。

下記のようなログになれば OK です。

マイグレーションの画像

最後に、phpMyAdmin で内容を確認すると、下記画像のように、posts テーブルが作成されていれば OK です。

phpmyadminの画面

phpmyadminの画面

便利ツールの紹介です

データベース設計とマイグレーションファイル作成を同時にできるツール

LaravelDB.com

データベースを設計するとき、ER 図というのを作成するのですが、その ER 図を作成すれば、同時にデータベースを作成するためのマイグレーションファイルを一緒に書き出してくれるというツールになります。

ER 図ってのは、下の画像みたいなやつです。

phpmyadminの画面

使い方の記事がこちら

めっちゃ便利です。

特に、プロダクトの作り始めの段階では便利だと思います。

まとめ

以上で Laravel のマイグレーションを使って、データベースを作成することができました。

細かい内容については、随時アップデートしてリンクを貼る予定なので、ちょくちょくブログに遊びにきていただければと思います。

それでは、最後まで見ていただき、ありがとうございました。