DBeaverでのテストデータ管理
DBeaverを使い始めて1ヶ月が経ちます。テストデータを作成したり、テスト結果を確認したりしていましたが、もっと効率よくテストができないかと思い、DBeaverの使い方を調べてみました。
この投稿は、DBeaverを初めて使う方や、テストデータの作成に時間がかかってしまう方にお勧めです!
概要
DBeaverのスクリプト機能を用いて、テストデータを管理する
課題
DBeaverは機能が豊富ですが、テーブル編集画面はExcelと比べると使いづらさを感じることがありました。例えば、オートフィル機能がなかったり,セルでの関数が使えなかったり…
従来の管理方法
テーブル編集はExcelの方がやりやすいと感じたので,Excelにテーブルごとのシートを作成してテストデータを管理していました。テスト時はExcelで編集したデータを用意してDBeaverにコピーしていました。
DBeaverの「高度なコピー」を使えば,カラム名や元のデータも簡単にExcelにコピーすることができます。この方法でもExcelの作成・編集まではそれなりに楽にできて,Excelにテスト前のデータを残しておけるというメリットもありました。
オプションで「Copy header」にチェックを入れるとカラム名もコピーできる
しかし,この方法ではDBeaverへのコピー後、Nullが設定されていないことがあります。
その場合、Nullを入れ直す必要があります。
また、テーブルごとにコピペするのでテーブルの量が多い時はかなり大変です。さらに,同じテストをもう一度実行したい時は、この作業を繰り返す必要があり非効率的です。
解決策
DBeaverのSQLスクリプトを管理する機能を用いてテストデータを管理します。
これには以下のメリットが挙げられます。
- SQLを実行すればすぐにテストデータが作成できるようになる
- 複数のテーブルも一度のSQLで更新できる
- Nullを明示的に指定することができる
やり方
-
プロジェクトの作成:
- DBeaverで新しいプロジェクトを作成し、テストごとにフォルダ名を設定する(例:UserTest)
-
スクリプトの作成:
- Excelで編集したテーブルのデータをAIツールに投げて、1つのSQLスクリプトとして生成してもらう
- 値がないところにはNULLを設定してもらう
- データが既に登録済みの場合もあるためアップサートするスクリプトを作成してもらう
-
スクリプトの保存:
- DBeaver左上のSQLから「新しいSQLエディタ」を選択しエディタを開く
- 生成したスクリプトを貼り付けて、作成したフォルダに名前を付けて保存する(例:test01.sql)
-
スクリプトの実行:
- スクリプトを実行すれば、テストデータの登録が完了する
エディタの三角マークかcommand+Enter(WindowsはCtr+Enter)で実行できる
- スクリプトを実行すれば、テストデータの登録が完了する
-
実行結果:
usersテーブル(NULLで指定したところはNULLになっている)
結論
DBeaverを活用することで、手動での操作負担を減らし、効率的かつ安全にテストデータを管理できます。より良い方法や使える機能があれば教えていただけると幸いです。
さいごに
- データの保護: 機密情報を含む場合、AIの使用には十分注意してください
- バージョン管理: Gitなどのバージョン管理システムと連携することで、SQLスクリプトの変更履歴を追跡でき、グループ内でのスクリプトの共有が容易に行えます