はじめに

この記事はNE Advent Calendar 2022 - Qiita の15日目の記事です。

NEのカレンダー | Advent Calendar 2022 - Qiita

みなさんはリファクタリングをしてますでしょうか?

一般的にはアプリケーションコードを修正することをリファクタリングと呼びますが、今回データベースに対するリファクタリングをする機会があったのそのときに気をつけた点について残そうかと思っております。今回は具体例に関しては記載を現段階では記入できていませんが、後ほど記載できたらと考えています。

リファクタリングの定義

リファクタリングとはリファクタリング本には以下のように記されています。

外部から見た時の振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること

リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)

DBリファクタリングをする際に修正を行う項目

アプリケーションのリファクタリングを行う場合は、アプリケーションコードだけ修正すればいいですがDBのリファクタリングをする場合にはDB自体の修正の他に参照しているアプリケーション側の修正もする必要があります。

DBリファクタリングをした際に起こり得る問題

アプリケーションコードのリファクタリングをする場合に起こる可能性のある問題としては振る舞いが変わってしまい正しい挙動でなくなる可能性がある問題が存在します、DBリファクタリングをする場合データベース定義やデータ移行・削除のDBに関わる修正の他にソースコードの修正が必要であり影響範囲が大きく以下の問題を引き起こす可能性があります。

今回はテーブルレコードやカラムを移行・削除することで起きる問題に対して考えたことを書きます。