4
0

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 3 years have passed since last update.

マイグレーション作成

Last updated at Posted at 2020-07-20

今回やること

マイグレーション機能(データベースのバージョン管理)を使用して、phpMyAdminに作ったデータベース(mommy_book)にテーブルを作成する!

##ポイント

  • migrationファイルの内容の中には、テーブルを作成する処理が含まれている 

    • up(): テーブル作成(バージョンアップ処理)
    • down(): テーブル削除(ロールバック処理)
  • Laravelにはプロジェクト作成段階でユーザ認証が組み込まれてるようになっている

    • ユーザ用のテーブルパスワード再確認用テーブルを作成するmigrationファイルがデフォルトでdatabase/migrationの直下に保存されている
       

今回のMommy_bookアプリでは、デフォルトのユーザ用migrationファイル(Usersテーブル用)に加えて、Babiesテーブル、Vaccinesテーブル、Baby_checkupsテーブル、Baby_teethテーブル、Matanity_checkupsテーブル、Albumsテーブルを作るため6つのmigrationファイルを作成する。

##流れ

  1. migrationファイルを作成
  2. テーブル定義書をもとにmigrationファイルを編集
  3. migrationを実行
  4. phpMyAdminのデータベースにテーブルが作成されているかを確認

ここでは、**①デフォルトでテーブルを作る場合(Usersテーブル)②自分でmigrationファイルを作る場合(ex. Babiesテーブル)**の作成を説明します

##①デフォルトでテーブルを作る場合(Usersテーブル)

1.migrationファイルは既にあるので、database/migrationの直下のcreate_users_table.phpを開く
[デフォルトではup()は以下の通り、down()はデフォルトのままなので省略]

 public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

2.テーブル定義書をもとにmigrationファイルを編集
image.png

3.migrationを実行 (コマンドで)

php artisan migrate

4.phpMyAdminで確認
image.png

☆データベースにテーブルが作成できているので成功☆

##②自分でmigrationファイルを作る場合(ex. Babiesテーブル)

  1. migrationファイルを作成

コマンドで、以下の通り(-createオプション:テーブル名は複数形で)

php artisan make:migration create_babies_table --create=babies

database/migrationで作成したcreate_babies_table.phpを開く
[デフォルトではup()は以下の通り、down()はデフォルトのままなので省略]

  public function up()
    {
        Schema::create('tweets', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }
  1. テーブル定義書をもとにmigrationファイルを編集
    image.png

  2. migrationを実行

php artisan migrate
  1. phpMyAdminのデータベースにテーブルが作成されているかを確認
    image.png

☆データベースにテーブルが作成できているので成功☆

##カラム設定で出てきたもの
ベースとなる書き方
型がintegerのときは、引数を取ることできないので注意!!!!

 Schema::create('テーブル名', function (Blueprint $table) {
$table->カラムの型('カラム名', 引数)
}

nullのとき⇩

$table->カラムの型('カラム名', 引数)->nullable();

メールアドレスなど値の重複を防ぎたいとき⇩

$table->カラムの型('カラム名', 引数)->unique();

外部キー⇩

$table->foreign('外部キー名')->references('外部キーに対応する主キー名')->on('選択した主キーのテーブル名');
}   

timestamps()
有効(全体)桁数指定で、NULL値可能なcreated_atとupdated_atカラムを追加する
NULLが指定された場合は、デフォルト値が入る

まとめ

以下の手順を繰り返す!!

  1. migrationファイルを作成
  2. テーブル定義書をもとにmigrationファイルを編集
  3. migrationを実行
  4. phpMyAdminのデータベースにテーブルが作成されているかを確認
4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?