くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

テーブルの全データを書き換えるバッチを作ったら先輩に言われたこと

テーブル全体を書き換えるようなartisanバッチを作って先輩にレビューをお願いしたら返ってきた内容がなるほどなぁと思ったのでメモがてらにシェア。

ビジネスロジックとは全く関係がないけど、後学のために何点か

1. 本番のデータ操作をするようなパッチ(定常的でないもの)は、 直接DBを書き換えるのではなく、SQL文を出力するようにした方が安全です。

出力されたSQLを数件確認して妥当性の検証してから手でSQLを実行する、という感じで。

2. 1度しか使わないバッチは、基本的に製品には組み込まない方がいいです。

将来誰かがこのバッチの用途をわからず、名前の響きだけで叩く可能性が0ではないので、 1度しか使わないものは別で管理しておいた方が無難です。

組み込まざるを得ない場合は、間違えて叩けないような回避策を入れておきましょう。 ※今回の場合だと、リリースして実行したらgit rmしてしまうとか、処理の先頭で特定日付過ぎたら強制的に処理終了させるとか。いずれにしても物理的に、ただ叩くだけでは実行不能な状態にしておくのがいいです。

なるほどなぁ(╹◡╹)