2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

laravelでのデータベースを使ってみた

Posted at

はじめに

前回構築した環境でデータベースをいじっていきます。もともとあるデータベースにテーブルを追加したりカラムを追加したりするのでデータベースの作成などは書いていません。

laravelでのデータベースの扱い

まずlaravelにおいてのデータベースの扱いなのですが、これはmigration(マイグレーション)というデータベースの作成や管理をするものがあります。

migration

migrationとは

公式には

マイグレーションとはデータベースのバージョンコントロールのような機能です。アプリケーションデータベースのスキーマの更新をチームで簡単に共有できるようにしてくれます。マイグレーションは基本的にLaravelのスキーマビルダとペアで使い、アプリケーションのデータベーススキーマの作成を楽にしてくれます。もしあなたが今まで、チームメイトに彼らのローカルデータベーススキーマに手作業でカラムを追加するよう依頼したことがあるなら、データベースマイグレーションは、そうした問題を解決してくれます。

と書いてあるのですが、自分にはなんのこっちゃかわかりません。要約すると

  • データベースをバージョンコントロールできる

  • チーム開発でスキーマの更新が簡単

  • laravelのスキーマビルダとペアで使うもの

  • データベーススキーマの作成が楽

ということでしょうか?

migrationの構造

マイグレーションにはupdownの2つのメソッドがあり、upはテーブルやカラム、インデックスなどをデータベースに新しく追加するために使い、downはupが行った操作を元に戻すものを記述します。

テーブルを作成をする

テーブルを作るためのファイル生成

まずここで詰まりました。
新しいテーブルを追加するにはartisanができる場所で

php artisan make:migration ファイル名

をしてテーブルを作成するためのファイルを作らなければなりません。
例えばUsersテーブルを作りたい場合は

php artisan make:migration create_users_table

のようにしてテーブルを作ります。
するとdatabase/migrationsにテーブルを追加する内容を書くファイルが生成されます。
※ファイルを勝手に自分で作ってもダメです(作っていた)。

テーブル内容の記述

生成されたファイルのupに追加したいものを記述します。新しいテーブルを追加する場合は


public function up()
    {
        Schema::create('テーブル名', function (Blueprint $table) {
            カラム名や属性等を書く
        });
    }

のように書きます。
例えばusersテーブル生成時にidと名前のカラムを作りたい場合は


public function up()
    {
        Schema::create('Users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
        });
    }

と書きます。
downメソッドには

カラムの変更

カラムの変更や追加をするときもテーブルの作成をしたときと同様新しいファイルを作らなければなりません。(database/にadd~というファイルがあるからといってそこに書き足しても読み込まれません)

php artisan make:migration ファイル名

例えば先ほど作ったテーブルにテキストカラムを追加するには

php artisan make:migration add_text

でファイルを作成後書いてきます。。

   public function up()
    {
        Schema::table('Users', function (Blueprint $table) {
            $table->text('text');
        });
    }

    public function down()
    {
        Schema::table('Users', function($table) {
            $table->dropColumn('text');
        });
    }

さいごに

https://readouble.com/laravel/5.3/ja/migrations.html
ここを読めば大体の事はできます。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?