Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Laravel】Migrationの実行とロールバック

PHPバージョン:7.1.14
Laravelバージョン:5.7.9

前回の続きです!
Migrationファイルは、作成するだけでは実行されません!
今回はMigrationの実行(migrate)を行い、
実際にデータベースにテーブルとカラムが出来ているのかを確認したいと思います!


Migrationの実行

Migrationの実行は簡単です!

$ php artisan migrate

Migrationファイルがある状態でこのartisanコマンドを実行することで、
Migration処理は行われます!

実行結果

$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table
Migrating: 2018_11_05_053713_create_articles_table
Migrated:  2018_11_05_053713_create_articles_table

前回作成したのはcreate_articles_tableだけですが、
デフォルトでcreate_users_tableとcreate_password_resets_tableという
Migrationファイルがdatabase>migrationsディレクトリにあるので実行されます。

それではMySQLにアクセスして
結果を確認してみましょう!

mysql> show columns from articles;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| title      | varchar(255)     | NO   |     | NULL    |                |
| created_at | timestamp        | YES  |     | NULL    |                |
| updated_at | timestamp        | YES  |     | NULL    |                |
+------------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

id, titleとtimestamp(created_atとupdated_at)が登録された
articlesテーブルが無事作成されていました!

Migrationのロールバック

それでは続いてロールバック(マイグレーションを実行する前の状態に戻す処理)を見てみましょう!

$ php artisan migrate:rollback

こちらのコマンドを実行すればロールバックされます。

実行結果

$ php artisan migrate:rollback
Rolling back: 2018_11_05_053713_create_articles_table
Rolled back:  2018_11_05_053713_create_articles_table
Rolling back: 2014_10_12_100000_create_password_resets_table
Rolled back:  2014_10_12_100000_create_password_resets_table
Rolling back: 2014_10_12_000000_create_users_table
Rolled back:  2014_10_12_000000_create_users_table

それではMySQLで確認してみましょう。

mysql> show tables;
+-----------------------+
| Tables_in_hiyotama_db |
+-----------------------+
| migrations            |
+-----------------------+
1 row in set (0.00 sec)

articlesというテーブルが消滅しました。
ロールバック成功です。
ちなみにmigrationsというテーブルにはMigrationの進行状況が記録されます。

create_articles_tableのマイグレーションを実行した結果

mysql> select * from migrations;
+----+------------------------------------------------+-------+
| id | migration                                      | batch |
+----+------------------------------------------------+-------+
|  4 | 2014_10_12_000000_create_users_table           |     1 |
|  5 | 2014_10_12_100000_create_password_resets_table |     1 |
|  6 | 2018_10_24_030135_create_articles_table           |     1 |
+----+------------------------------------------------+-------+

今回はここまでです、ありがとうございました〜