カラム追加の場合は、table nameを指定してmake:migration
php artisan make:migration add_is_admin_column_to_posts_table –table=”posts”
dropも忘れずに書く
unsignedはnot negative number
public function up() { Schema::table('posts', function (Blueprint $table) { // $table->integer('is_admin')->unsigned(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('posts', function (Blueprint $table) { // $table->dropColumn('is_admin'); }); }
mysql> describe posts;
+————+——————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————+——————+——+—–+———+—————-+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| content | text | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| is_admin | int(10) unsigned | NO | | NULL | |
+————+——————+——+—–+———+—————-+
6 rows in set (0.01 sec)
public function up() { Schema::table('posts', function (Blueprint $table) { // $table->tinyInteger('is_admin')->default('0'); }); }
migrate:resetはall rollback
$ php artisan migrate:reset
Rolled back: 2019_12_05_083227_add_is_admin_column_to_posts_table
Rolled back: 2019_12_05_072639_create_posts_table
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table
migrate:refreshはresetとmigrateを同時に行う
$ php artisan migrate:refresh
ステータス表示
$ php artisan migrate:status
+——+——————————————————+
| Ran? | Migration |
+——+——————————————————+
| Y | 2014_10_12_000000_create_users_table |
| Y | 2014_10_12_100000_create_password_resets_table |
| Y | 2019_12_05_072639_create_posts_table |
| Y | 2019_12_05_083227_add_is_admin_column_to_posts_table |
+——+——————————————————+
カラムの編集・追加の度にmigration fileを追加するのか、resetで対応するかはどうなんだろう?
resetの方が、tableごとに管理できるので管理しやすそうだが、migration fileを追加していくのは、時系列で追えるメリットがある。