02_2_migration - hpscript/laravel GitHub Wiki

https://readouble.com/laravel/5.8/ja/migrations.html

migrationはDBのtable generator upとdownの記載がある

  • upはこのmigrationで行いたい処理
  • downは巻き戻す処理(tableをdrop)
public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

bigIncrementsはint increment string timestampsはcreated_at、updated_atのカラムを作る varcharはstring, textはtext ※使用できるカラムタイプは公式ドキュメント参照

migration fileの実行はphp artisan

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

migration file作成

$ php artisan make:model Post --migration

migration

$ php artisan migrate

migration fileを修正したい時

$ php artisan migrate:reset $ php artisan migrate

table name

usersがtable nameになる

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

make migration

$ php artisan make:migration create_posts_table --create="posts"

rollback

delete last migration $ php composer.phar dump-autoload $ php artisan migrate:rollback

カラム追加

カラム追加の場合は、table nameを指定してmake:migration php artisan make:migration add_is_admin_column_to_posts_table --table="posts"

全て削除

$ php artisan migrate:reset

resetとmigrateを同時実行

$ php artisan migrate:refresh

ステータス表示

$ php artisan migrate:status

rollback

batchではなく、戻したいテーブル数を指定 mysql> select * from migrations;

+----+------------------------------------------------+-------+
| id | migration                                      | batch |
+----+------------------------------------------------+-------+
| 11 | 2014_10_12_000000_create_users_table           |     1 |
| 12 | 2014_10_12_100000_create_password_resets_table |     1 |
| 13 | 2019_08_19_000000_create_failed_jobs_table     |     1 |
| 14 | 2019_12_29_222614_create_*****_table           |     1 |
| 24 | 2020_01_02_003618_create_*****_table           |     2 |
| 25 | 2020_01_02_113019_create_********_table        |     2 |
| 26 | 2020_01_02_113040_create_******_table          |     2 |
| 27 | 2020_01_02_113114_create_********_table        |     2 |
| 28 | 2020_01_03_205110_create_*****_table           |     2 |
| 29 | 2020_01_03_205139_create_*******_table         |     2 |
| 30 | 2020_01_07_164639_create_aaaaaa_table          |     3 |
| 34 | 2020_01_07_170922_create_bbbbb_bbbbbbbb_table  |     4 |
| 35 | 2020_01_07_170950_create_ccccccc_table         |     4 |
| 36 | 2020_01_10_005229_create_ddddddd_table         |     4 |
+----+------------------------------------------------+-------+

$ php artisan migrate:rollback --step=4

Rolling back: 2020_01_10_005229_create_ddddddd_table
Rolled back:  2020_01_10_005229_create_ddddddd_table (0.02 seconds)
Rolling back: 2020_01_07_170950_create_ccccccc_table
Rolled back:  2020_01_07_170950_create_ccccccc_table (0.02 seconds)
Rolling back: 2020_01_07_170922_create_bbbbb_bbbbbbbb
Rolled back:  2020_01_07_170922_create_bbbbb_bbbbbbbb_table (0.02 seconds)
Rolling back: 2020_01_07_164639_create_aaaaaa_table
Rolled back:  2020_01_07_164639_create_aaaaaa_table (0.02 seconds)