4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ここ最近のおもひでぽろぽろAdvent Calendar 2023

Day 1

本番環境からテストデータを作成してみた話

Posted at

はじめに

テストデータ作成に迷える後輩を救いたかった

問題

負荷検証するにあたり本番相当のデータで検証をしたかった。
検証用環境としても個人情報もりもりのデータをマスクせずに登録はしたくない。

解決方法

A5SQLというツールの取得データをInsert文に変換する機能を使い、取得結果をマスクするようなSQLを実行する。
SQLのCASEとCONCATを組み合わせて個人情報のカラムを置換して取得する。

select
    a.id
    , case 
        when a.email is not null 
            then concat('kensyo_', a.id, '@domain.com') 
        end as email
    , a.reset_password_token
    ...

おわりに

caseを利用することで取得されたカラムに対して条件付け(データがあれば・・・等)が可能になる。
concatを利用することで対象のカラムを書き換えることができるため、個人情報を含むカラムを特定の文字列+ID等に置換することができる。

一つ欠点を上げるとするとテーブル内のカラム数が増えた時に全カラム記載しないといけないのでアワワワワとなる。

参考

https://dev.mysql.com/doc/refman/8.0/ja/case.html
https://www.javadrive.jp/mysql/function/index35.html
https://a5m2.mmatsubara.com/

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?