本番データの修正をためらうきもち

例えば、本来 not null であるべきカラムが null可 になってしまっていて、データにnullと空文字が混在していたとする。このとき、既存のデータを null => 空文字 に修正して、null可 => not nullに修正するのがあるべき姿で正しい修正だと思う。

しかし、このとき、自分はアプリケーション側でそれらを吸収するような修正を行ってしまうという判断をやりがちである。もちろん、DBのデータ修正が複雑なのであればそれは特に間違いではないと思うが、それほど複雑でない場合もこういう判断をしがちな記憶がある。

自分でもなぜだろうと考えて見たが、不正なデータを生んでしまったなどどうしてもやらざるを得ない状況以外では、本番データを極力直接さわりたくないという思いがあるのではないかと考えた。本番データを直接さわりたくないというのは、それはそれで悪くはないと思うが、なんというか容易な修正でもできれば避けたいというきもちになってしまっていて、ちょっと極端過ぎたなと思う。

グダグダ書きすぎて文章がわかりにくくなった。 要するに、DB直接修正するのは別に名前を言ってはいけないあの人みたいな触れちゃいけないものではなくて、いくつかある手段の一つとして平等に評価すべきだ、不必要に恐れるなということを言いたかった。

技術的な判断をする上で今後も起こり得そうだと思ったのでここでメモしておく。