PHP
laravel
laravel5.6

[ メモ ] laravel5.6 マイグレーション データベース(テーブル)のカラムの変更

テーブルのカラムの型を変更

今回、文字型から整数型(INT)に変更した時に、上手くいかなかったのでメモ

  • 変更用のマイグレーションファイルを作成
$ php artisan make:migration add_users_table --table=users

:exclamation: add_(マイグレーションファイル名)_table
:exclamation: --table=(テーブル名)

2018_06_01_11111_add_users_table.php
<?php

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

class AddUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {

        });
    }
}

このようなマイグレーションファイルができたら

  • upメソッドの中にカラム属性の変更をかく
    • changeメソッドは、存在するカラムを新しいタイプへ変更するか、カラムの属性を変更
2018_06_01_11111_add_users_table.php
   /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->integer('status')->change();
        });
    }
  • downメソッドに削除したいカラムをかく
2018_06_01_11111_add_users_table.php
   /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('send_lists', function (Blueprint $table) {
            $table->dropColumn('status');
        });
    }
  • マイグレーションを実行して、カラムを変更する
$ php artisan migrate