1
0

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 1 year has passed since last update.

【rails】機能削除等で不要なテーブルが出てきた時の対応

Last updated at Posted at 2022-02-23

はじめに

不要な機能削除が発生した際に、その機能でしか使ってなかったようなテーブルがあった場合は原則削除したほうがよいと思う。不要なソースコードやテーブルが残っていると混乱を招くだけなので。(ただし、なにかしらの理由で残しておいたほうがいい場合を除く)

ただし、いきなり削除すると問題があった時に面倒なので、いったんrenameしてアクセスできなくして、しばらく運用して問題なければdumpをとって削除する。万が一問題があったら元のテーブル名に戻す。

注意

プロジェクトごとにやり方があると思うので、あくまで参考程度にしてください。

手順

不要な機能の削除方法

  • 不要な機能のソースコードを削除する
    • 別の場所で共通で使っている部分がある場合があるので注意する
  • 不要な機能の削除に関わるspecを削除する

テーブルのrename

  • codeを全検索して model が使われていないことを確認する
  • テーブルをrenameするmigrationファイルを作成する
  • ローカルでrails db:migrateして、ローカルDBにrenameを反映する
  • ローカルで動作確認する
  • テストが通ることを確認する
  • stagingデプロイして動作確認する
  • 本番デプロイし問題がないか監視する

本番DB反映後、問題なかった場合

  • 1ヶ月くらい運用してみて、問題がなさそうであれば念の為dumpをとってテーブルを削除する

本番DB反映後、renameによる問題が発生した場合

  • railsのmigration機能を使っている場合、本番DBではrails db:rollbackしないこと (migrationのstatusとの整合性など、色々ややこしいことになる)
  • まず発生している問題が本当にrenameによるものかしっかり調査する。
  • 問題の原因がrenameによるものであると決まった場合、developからfeatureブランチをきって、元のテーブル名に戻すmigrationファイルを作成する
  • 問題が解決しているか確認する
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?