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)