現在の状態
id | マイグレーションファイル | up | down |
---|---|---|---|
1 | create_foo_table.php | テーブルfoo を作成 | テーブルfoo を削除 |
2 | create_bar_table.php | テーブルbar を作成 | テーブルbar を削除 |
データを全て削除する場合
現在の状態からテーブルfoo
のみを削除したい場合、手順は
- 全てロールバック
create_foo_table.php
を削除- マイグレーションを実行
で合ってますでしょうか?
削除しないテーブルのデータを保持したい場合
現在の状態からテーブルfoo
を削除し、なおかつテーブルbar
のデータを保持したい場合、
create_foo_table.php
のup
とdown
の処理を逆にしたマイグレーションファイルdrop_foo_table.php
を作成- マイグレーションを実行
id | マイグレーションファイル | up | down |
---|---|---|---|
1 | create_foo_table.php | テーブルfoo を作成 | テーブルfoo を削除 |
2 | create_bar_table.php | テーブルbar を作成 | テーブルbar を削除 |
3 | drop_foo_table.php | テーブルfoo を削除 | テーブルfoo を作成 |
で合ってますでしょうか?
- これらの手順によって起こる不都合や、より一般的で良い手順があれば知りたいと思います。
- 軽くググってもこのことについて書かれた文章が見つからなかったので投稿します。
2019-12-02 追記
- hentaimanさんから、「リリース前なら全てロールバックする前者の方法を採用する」という回答をいただきました。
- 開発段階ではテーブル構成の変更が多く、無駄なマイグレーションファイルが積み重なると見通しが悪くなる、というのが理由です。
Dacapo
- このような場合に、マイグレーションファイルを再整理してくれるDacapoというツールがあることを知りました。 https://qiita.com/ucan-lab/items/8d23dc08fc5f964a3e72
- 私自身はまだ試していませんが、手動でマイグレーションファイルを削除するよりはこのようなツールに頼る方が確実かもしれません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/27 08:16
2019/11/27 08:28 編集