ひよっこエンジニアの雑多な日記

なんとかWeb系のエンジニアをやっています。

mysqlでメールアドレスにマスクをかけるよ

今回は2週間ぶりくらいの更新!
ちょっとずつ間隔を短くしたい!

今回は件名の通りmysqlでメールアドレスにマスクをかけます。
hogehoge@example.com -> xxxxxxx-1@example.com
上みたいな感じにします!

シチュエーションとしては

  • 本番データをステージングに突っ込みたいけど個人情報やし、うかつに突っ込めない…
  • そんなときはメールアドレスにマスクをかけちゃお! みたいな感じです

兎にも角にも手順

1. 本番環境からdumpとる
2. ローカルにdumpを突っ込む(DBは作成してからNE)
3. マスクかけるupdate文を流す

update 'テーブル名' set 'emailのカラム' = replace('emailのカラム',left('emailのカラム',instr('emailのカラム','@')-1),concat('xxxxxxx_',id));

4. ローカルからdumpとる
5. scpでステージングに送る
6. ステージングでDBにdump突っ込む
7. 優勝

きょうのはんせいてん

インフラ触るときは1字1句の誤字脱字のチェック、
なにか質問するときはまず自分で確認できるところはないか考えてから
ちゃんと足りないことがないか確認してからアクションする

備考

postgresqlの場合はこうする

update 'テーブル名' set 'emailのカラム' = replace('emailのカラム',substring('emailのカラム', 1, strpos('emailのカラム','@')-1),concat('xxxxxxx_',id));