カラム追加の場合は、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を追加していくのは、時系列で追えるメリットがある。