メインコンテンツへスキップ

概要

Qoder は JetBrains IDE のデータベース接続を AI コンテキストとして使用することをサポートしています。@database 機能により、AI は実際のデータベーステーブル構造に基づいて SQL を生成し、スキーマ分析を実行したり、関連コードを生成したりできます。

前提条件

データベース機能を使用する前に、JetBrains IDE でデータベース接続を設定する必要があります:
  1. データベースツールウィンドウを開く
  2. データベース接続を作成
  3. 接続が正常に機能するかテスト
詳細な設定手順: https://www.jetbrains.com/help/idea/database-tool-window.html

使用方法

Ask/Agent モードでデータベースを参照

データベースをコンテキストに追加:
  1. Qoder 入力ボックスで「Add Context」をクリック
  2. @database を選択
  3. 対象のデータベース Schema を選択
注意:
  • コンテキストに追加される SQL ファイルは、データベーススキーマに基づいて生成されます
  • データベースに複数のスキーマがある場合、対応する複数のスキーマ SQL ファイルが生成されます
追加後、AI にデータベース関連の質問を直接することができます。例えば:
  • 特定のテーブルをクエリする SQL を生成
  • テーブル構造設計を分析
  • テーブル構造に基づいてコードを生成
生成された SQL の実行: Ask モードで返される SQL コードブロックには実行ボタンが付いています。クリックして直接実行できます。 注意: Qoder は現在アクティブなデータベース Query Console で SQL を実行するため、事前に対応するデータベースの Query Console を開いておく必要があります。

Query Console で SQL を生成

  1. データベースの Query Console を開く
  2. Ctrl + Shift + I を押す
  3. 自然言語の説明を入力
  4. Enter を押して SQL を生成
Qoder は現在のデータベーススキーマを自動的にコンテキストとして使用します。

スラッシュコマンドの使用

カスタムコマンドを作成して、一般的な操作を素早く完了できます。 コマンドの作成:
  1. Qoder ウィンドウのプロフィールアイコンをクリック
  2. 「設定」→「コマンド」を選択
  3. 新しいコマンドを作成
コマンドの呼び出し: Qoder ダイアログで / に続けてコマンド名を入力して呼び出します。例えば、/sql と入力して SQL 生成コマンドを呼び出します。 よく使用されるコマンド例: SQL 生成 (/sql):
現在のデータベーススキーマに基づいて SQL ステートメントを生成
データベースレビュー (/db-review):
データベーススキーマをレビューし、次をチェック: 命名規則、インデックス設計、データ型、テーブル関係
テストデータ生成 (/mock-data):
テーブル構造に基づいて INSERT テストデータを生成
ヒント: コマンドがデータベース操作のみに関係する場合(NL2SQL など)、冒頭に「Don’t scan project files!」を追加することで、プロジェクトファイルのスキャンを回避し、トークンを節約して曖昧さを避けることができます。AGENTS.md と Rules ファイルは引き続き含まれることに注意してください。

DataGrip での使用

Qoder をツールバーに追加:
  1. 上部の「…」アイコンをクリック
  2. 「Qoder」を選択
  3. ピンアイコンをクリックして固定
使用方法:
  • Query Console で Qoder ボタンをクリック
  • またはショートカット Ctrl + Shift + I を押す
Qoder は対応するデータベーススキーマを自動的に選択します。 推奨: プロジェクトディレクトリに AGENTS.md ファイルを追加し、テーブル命名規則、SQL ガイドライン、または特定のデータアノテーションなどのプロジェクト規約を説明してください。

実用的なシナリオ

データベース設計

Agent モード(複雑なシナリオ向け)

適用対象:
  • 設計ドキュメントを参照する必要がある
  • 特定の仕様に準拠した SQL を生成する必要がある
  • 特定の形式のマイグレーションスクリプト(Flyway など)を生成する必要がある
手順:
  1. Agent モードで関連ドキュメントをコンテキストに追加
  2. 自然言語で要件を説明
  3. SQL ファイルを生成
  4. SQL ファイルを開いて実行

Query Console モード(シンプルなシナリオ向け)

適用対象:
  • シンプルなデータベース構造設計
  • テーブル構造の調整
  • 小規模な変更
手順:
  1. データベース Schema の Query Console を開く
  2. 要件を入力
  3. 生成された SQL を調整して実行

データベース設計のベストプラクティス

テーブル構造のサンプルを提供: 標準的なテーブル構造のサンプルがある場合、Qoder に参考として提供できます:
-- テーブルレベルのコメント例
CREATE TABLE user_info (
    id INT COMMENT 'ユーザーID (標準フィールド名: user_id, 主キー)',
    name VARCHAR(50) COMMENT 'ユーザー名 (標準フィールド名: name, 実名)',
    created_at DATETIME COMMENT '登録日時 (標準フィールド名: created_at, アカウント作成日時)',
    status TINYINT COMMENT 'ステータス (標準フィールド名: status, 列挙値: 0-無効 1-通常 2-凍結)',
    PRIMARY KEY (id)
) COMMENT='ユーザー基本情報テーブル | 標準テーブル名: user_information | ビジネスドメイン: ユーザードメイン | 更新方法: リアルタイム';
設計仕様の推奨事項: 命名規則:
  • 明確で説明的な名前を使用し、テーブル名とフィールド名が意味を直接表現できるようにする(例: user、order_item)、単数形を推奨
  • 命名の一貫性を保ち、統一的に snake_case または camelCase を使用
  • 略語を避け、cust_addr ではなく customer_address を使用
  • ブールフィールドにはプレフィックスを追加、例: is_active、has_paid
構造設計:
  • 主キーを明確に、各テーブルに明確な主キーがあり、id または table_name_id と命名
  • 外部キー関係を明確に、外部キーを user_id、order_id のように命名し、関連テーブルを明確に指す
  • タイムスタンプを追加、created_at、updated_at フィールドを含める
ドキュメントとコメント:
  • テーブルコメントを追加してテーブルの用途を説明
  • フィールドコメントを追加してフィールドの意味、値の範囲、単位などを説明
  • 列挙値を説明、ステータスフィールドなどで各値の意味をコメントで説明
型の選択:
  • 適切なデータ型を使用、すべて VARCHAR を使用することを避ける
  • 適切な長さ制限を設定
  • NULL 値戦略を明確に、どのフィールドが NULL を許可し、どのフィールドが必須か
  • デフォルト値を明確に、明確なデフォルト値がある場合は指定する

レガシーデータベースのアノテーション

命名規則に準拠していないレガシーデータベースの場合、JSON ファイルを使用してアノテーションを付け、AI がデータベース構造をよりよく理解できるようにします。 シナリオ例: 以下のようなレガシーデータベーステーブルがあるとします:
CREATE TABLE tbl_yonghu (
  id        BIGINT AUTO_INCREMENT PRIMARY KEY,
  xin_bie   CHAR(2)     NOT NULL,
  nian_ling INT         NOT NULL,
  gonghao   VARCHAR(32) NOT NULL UNIQUE,
  jiru_date VARCHAR(32)
);
既存のデータベース構造を調整できない場合、db-metadata.json ファイルを作成してアノテーションを付けることができます:
{
  "type": "database",
  "description": "データベーステーブル構造アノテーション、ここの定義を基準とする",
  "tables": {
    "tbl_yonghu": {
      "label": "ユーザーテーブル",
      "description": "システムユーザー情報を保存",
      "required": [
        "id",
        "xin_bie",
        "nian_ling",
        "gonghao"
      ],
      "columns": {
        "id": {
          "label": "ユーザーID",
          "type": "int",
          "description": "一意の識別子"
        },
        "xin_bie": {
          "label": "性別",
          "type": "char(2)",
          "description": "ユーザーの性別",
          "enum": ["男性", "女性"]
        },
        "nian_ling": {
          "label": "年齢",
          "type": "int",
          "description": "ユーザーの年齢"
        },
        "gonghao": {
          "label": "社員番号",
          "type": "varchar(16)",
          "description": "ユーザーの社員番号",
          "unique": true
        },
        "jiru_date": {
          "label": "入社日",
          "type": "varchar(16)",
          "description": "ユーザーの入社日",
          "format": "date",
          "nullable": true
        }
      }
    }
  }
}
使用方法: データベーススキーマをコンテキストに追加する際、この JSON アノテーションファイルも同時に追加します。Qoder はデータベース構造を理解する際にこの JSON を参照し、より正確にコードと SQL を生成します。

注意事項

非常に多くのデータベーステーブル

データベーススキーマが非常に大きい場合(テーブルが非常に多い、ERP、CRM などのシナリオ)、Agent のコンテキスト制限を超える可能性があります。 解決策:
  • データベーススキーマを複数の SQL ファイルにエクスポート
  • ファイルを追加する方法でコンテキストにバッチで追加
  • 現在のタスクに関連するテーブルのみを追加

データベース方言(Dialect)

Qoder はデータベース方言をコメントとしてデータベーススキーマに自動的に追加するため、データベースタイプを手動で宣言する必要はありません。 SQL ファイルを手動でコンテキストに追加する必要がある場合:
  • SQL ファイルにコメントを追加してデータベースタイプを示すことができます。例: -- dialect: mysql
  • グローバル AGENTS.md でデータベースタイプを宣言することもできます