0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel6 Migration まとめ

Posted at

はじめに

Migrationは新規テーブルの作成、カラム追加など、DBの更新を行うための機能。
今回は使い方をもう一度整理するためにまとめた。
※マイグレーションは①作成②実行の2段階に分けられる
作成は設計図を作る作業でそれを実行(migrate)しないとDBに反映されないので要注意!

ファイルの作成・カラムの追加

$ php artisan make:migration create_{テーブル名}_table //マイグレーションファイル作成

$ php artisan make:migration add_{カラム名}_to_{追加先のテーブル名}_table //カラムの追加

(database/migrations)配下に作成される。

オプション

$ php artisan make:migration create_users_table --create=users

$ php artisan make:migration create_users_table --table=users

--create、--tableのうしろに=でマイグレーションファイルで扱うテーブルの名前を引数として渡
すと、
出来上がるマイグレーションファイルはそのテーブル名を含んで雛形が作られる。
特別な理由がない限り付けておくのが無難か。(雛形と全く違うとか)

Migration 実行

$ php artisan migrate

このコマンドで実際にテーブルが作成される。
これしないと反映されませんからね!

ロールバック

Migrationした時に定義ミスを起こしてしまった時巻き戻しが可能。

# 最後に適用されたマイグレーションをロールバック
$ php artisan migrate:rollback

Migrationは確認することもできる。
ロールバックはやらかしがちなので落ち着いて行おう。

# migrationsテーブルの中身

mysql> SELECT * FROM migrations;
+----+---------------------------------------------------+-------+
| id | migration                                         | batch |
+----+---------------------------------------------------+-------+
|  1 | 2016_12_19_000000_create_tables                   |     1 |
|  2 | 2018_07_18_102240_add_column_mogumogu             |     1 |
|  3 | 2021_02_05_194658_create_hogehoge_table           |     2 |
+----+---------------------------------------------------+-------+

$ php artisan migrate:status //こちらのコマンドでも確認できるよ

新たにMigrationしたい時

再度Migtationしたいときは php artisan migrateではだめです

$ php artisan migrate:refresh
$ php artisan migrate:fresh

refreshはマイグレーションファイルの down メソッドを呼び出してテーブルの削除などを行ってからmigrateされます。rollback(巻き戻し)してから再実行する感じ。

freshはdownメソッド呼び出さずに、全テーブルをdropしてからmigrateがされます。
dropてのはまあ削除するってことですね。

しかしrefresh と fresh
これをどう使い分けるのかが調べたが出てこない。。。
基本はfreshを使っているが、わかったら追記する。
分かる方いらっしゃいましたらコメントくださいませ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?