1
1

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.

Laravelの基礎 ~マイグレーション~

Last updated at Posted at 2020-12-31

Laravel(6系)の公式ページで紹介されているマイグレーションについて簡単にまとめました。

##マイグレーションファイルの作成
マイグレーションファイルを作成する時の基本的な書き方

ターミナル
php artisan make:migration すること_テーブル名_table

新しくテーブルを作成する時はオプションに--createを指定します。

ターミナル
php artisan make:migration create_テーブル名_table --create=テーブル名

php artisan make:migration create_users_table --create=users

既存のテーブルに変更や追加をする時はオプションに--tableを指定します。

ターミナル
php artisan make:migration すること_テーブル名_table --table=テーブル名

php artisan make:migration add_pic_to_posts_table --table=posts

##マイグレーションの記述

.php
<?php

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

class □□○○Table extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('テーブル名', function (Blueprint $table) {
             // マイグレーション実行した時の処理
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('テーブル名', function (Blueprint $table) {
             // ロールバックした時の処理
             // up()の処理を取り消す
        });
    }
}

###よく使うカラム

コマンド 説明
$table->integer('votes'); INTEGERカラム
$table->unsignedBigInteger('votes'); 符号なしBIGINTカラム
$table->string('name', 100); 文字長を指定したVARCHARカラム
$table->text('description'); TEXTカラム
$table->timestamps(0); 有効(全体)桁数指定でNULL値可能なcreated_atとupdated_atカラム追加
$table->boolean('confirmed'); BOOLEANカラム
stringはnameなど短い文字列、textはコメントなど長い文字列。

###よく使う修飾子

修飾子 説明
->after('column') 指定カラムの次に他のカラムを設置
->autoIncrement() 整数カラムを自動増分ID(主キー)へ設定
->charset('utf8') カラムへキャラクタセットを指定
->collation('utf8_unicode_ci') カラムへコレーションを指定
->comment('my comment') カラムにコメント追加
->default($value) カラムのデフォルト(default)値設定
->first() カラムをテーブルの最初(first)に設置する
->nullable($value = true) (デフォルトで)NULL値をカラムに挿入する
->storedAs($expression) stored generatedカラムを生成
->unsigned() 整数カラムを符号なしに設定

##マイグレーションの実行

マイグレーションファイルのup()の処理を実行する時、migrateを使います。

ターミナル
php artisan migrate

マイグレーションファイルのdown()の処理を実行する時、rollbackを使います。

ターミナル
php artisan migrate:rollback

rollbackにstepオプションを付けることで、巻き戻す数を指定できます。

ターミナル
php artisan migrate:rollback --step=5
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?