ちょっと複雑なテーブル群の設計をしようと思って、まずはClaudeに相談して大体のDDLを作りました。
いままでならそれをDB用のツールを使って実行してテーブルを作って、テストデータを入れてクエリを書いてみて試行錯誤するところですが、今回はその部分をClaude Codeと一緒にやってみました。
まず、開発用のPostgreSQLをdocker composeで起動します。docker-compose.yamlの書き方もClaude Codeが教えてくれました。
本当に楽すぎて脳味噌が退化していく・・
Dockerで起動したら、今度はClaude CodeにDBHub MCPの設定をします。
claude mcp add --transport stdio dbhub -- npx -y @bytebase/dbhub --dsn "postgres://username:username@localhost:5432/dbname"
これだけで、Claude Codeに話しかけるだけでSQLを発行してもらえるようになりました。
なので、「このDDLを実行してテーブルを作って」「カテゴリマスタに〇〇を登録して」「今登録したカテゴリで〇〇という商品を追加して」など、コンテキストに応じたSQLをどんどん実行してくれます。サンプルデータをExcelに雑に登録しておいて、「このExcelを元にデータ登録して」などの面倒なこともサクサクできます。
テーブル構造についてClaude Codeと相談しながら、DDLを書いたファイルを編集してもらい、それを元にテーブルを作ってもらい、テストデータを入れてSQLを実行してもらい、と、頼りっぱなしです。
考えてみると、フロントやAPIのコードは中身すら見ずにVibe Codingして、ダメならそのコードを捨てて作り直すのが当たり前になってきていますが、DB設計に関しては一度作ってしまうとそう簡単に変えられないので、DDLを元に相談してちゃんとした設計にするのは大事ですね。
DDLをベースにするのではなく、Prismaのファイルをベースに設計を進めるなどの方法もあると思うので、試行錯誤していきたいです。

コメント