DataGripの「Scratch Files」で思考の速度を解放せよ:本番環境を汚さないプロトタイピングの極意
「ちょっとした結合条件を試したいだけなのに、プロジェクトのSQLファイルを作るほどではない」
「検証用のクエリを書き散らして、結局どれが最新か分からなくなる」
もしあなたがDataGripを使っていながら、プロジェクトのディレクトリ内に `test.sql` や `tmp.sql` を作り続けているなら、今すぐその習慣を捨ててほしい。
DataGrip(およびIntelliJ系IDE)の隠れた最強機能 「Scratch Files(スクラッチファイル)」 こそが、DBエンジニアの思考速度を最大化する鍵だ。これはプロジェクトフォルダに依存しない、あなたの「脳の拡張ストレージ」である。
—
1. Scratch Files:なぜプロジェクトファイルと分けるべきか
プロジェクト内のSQLファイルは「成果物」だが、Scratch Filesは「思考のプロセス」だ。
- 汚染の排除: Git管理対象外のため、検証用のゴミクエリがリモートリポジトリに紛れ込む事故を物理的に防ぐ。
- 文脈の維持: IDEを再起動しても、切り替えたプロジェクトを跨いでも、Scratch Filesは生存し続ける。
- 即時性: `Ctrl + Shift + Alt + Insert` (Mac: `Cmd + Shift + N` でファイル選択から新規作成) で秒速生成可能。
2. 爆速で思考するための「隠れたキーボードショートカット」
Scratch Filesを使いこなすための、現場で必須のショートカットを叩き込む。
| アクション | ショートカット (Win/Linux) | ショートカット (Mac) |
| :— | :— | :— |
| 新規スクラッチ作成 | `Ctrl + Shift + Alt + Insert` | `Cmd + Shift + N` → ファイル選択 |
| 言語の切り替え | `Alt + Enter` (Intentions) | `Opt + Enter` |
| 検索/切り替え | `Shift + Shift` (Search Everywhere) | `Shift + Shift` |
プロの運用術:言語の動的切り替え
DataGripのScratch Filesは、作成時に拡張子を指定しなくても、後から `Alt + Enter` (Opt + Enter) で「Change Language」を選択すれば、SQLからJSON、さらにはShellスクリプトへ即座に性質を変えられる。
複雑なクエリの出力結果(JSON)をコピペし、即座にJSONファイルとして整形(`Ctrl + Alt + L` / `Cmd + Opt + L`)して検証するフローは、もはや呼吸レベルで実行すべきだ。
—
3. 開発スピードを底上げする「神プラグイン」
デフォルトでも強力だが、以下のプラグインを導入することで、DataGripは「ただのDBクライアント」から「爆速SQL生成マシン」へと進化する。
1. Key Promoter X: ショートカットを忘れた時に「マウスで押した操作」を教えてくれる。学習コストを最小化するための必須ツール。
2. String Manipulation: SQLの `IN` 句を作るためにカンマ区切りの文字列をリスト化したり、キャメルケース/スネークケース変換を一撃で行う。
3. Rainbow Brackets: 複雑なサブクエリのネストを色分けして視覚的に把握。脳の負荷を劇的に下げる。
—
4. チームで共有する「設定のベストプラクティス」
個人の生産性は設定の集積である。設定を `IDE Settings Sync` で同期させるのは基本だが、チームで共通のフォーマットを維持するために、以下の構成をプロジェクトの `.idea/` 配下に含めることを推奨する。
`codeStyles/Project.xml` (SQLフォーマット共有)
チーム全員のクエリフォーマットがバラバラだと、GitのDiffが読みづらくなる。以下の設定を共有せよ。
—
5. 現場で震える「極限の検証フロー」の極意
最後に、私が実務で実践している「複雑な結合条件の検証フロー」を紹介する。
1. コンテキストの切り離し: `Cmd + Shift + N` で新規スクラッチ作成。
2. 実行環境の固定: `Cmd + Click` で左上のターゲットDBを選択し、検証したい開発用DBに接続を固定する。
3. スニペットの活用: `Live Templates` に頻出する結合パターン(`left_join`, `complex_cte` など)を登録し、`Tab` 一発で展開する。
4. 結果の保持: 実行結果(Result Grid)は `Export` 機能で CSV/JSON に即座に吐き出せる。これを別のスクラッチに貼り付け、アプリケーション側のロジック検証に回す。
なぜこれが最強なのか?
本番DBに対するクエリを「実験室(Scratch Files)」に隔離することで、「実行後の状態変化」に対する心理的恐怖が消えるからだ。心理的ハードルが下がれば、試行回数は増える。試行回数こそが、エンジニアの技術力を高める唯一の変数なのだ。
—
さあ、今すぐ不要な `test.sql` をプロジェクトから削除し、Scratch Filesの世界へ移行せよ。
あなたのクエリは、もっと速く、もっと自由になれるはずだ。