mcpField
S
seed

seed

github.com/hainrixzデータ・データベース2269 回インストール6 日前に更新
リポジトリ

seed について

seedは、スキーマ、ORMモデル、またはマイグレーションから決定的なサンプルINSERT文を生成する読み取り専用スキルです。開発者がローカル開発、テスト、CI向けの再現可能なフィクスチャを用意するためのもので、本番データには使いません。

主な機能

  1. 01スキーマからINSERT文を生成
  2. 02外部キーに沿った挿入順
  3. 03決定的なサンプル値
  4. 04SQLまたはJSON形式で出力
  5. 05解析の信頼度と除外テーブルを報告

活用シーン

  1. 01再現可能なローカル開発用フィクスチャ作成
  2. 02自動テスト用のシードデータ準備
  3. 03依存順に並んだINSERT文の生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hainrixz/claude-db --skill seed

インストール後、Claude Code で/seedを入力して読み込まれたか確認します。

詳細

/claude-db:seed

スキーマから、外部キーを考慮した決定論的なサンプル/シード用の INSERT 文を生成します。読み取り専用です。データベースへの接続や書き込みは行いません。出力は開発/テストデータ専用です。行インデックスから導出される予測可能な値(乱数なし)を使用するため、フィクスチャ、ローカル開発、CI に適しています。本番環境では決して使用しないでください。

$ARGUMENTS = <path-to-schema> [flags]。対象はスキーマ/DDL、ORM モデル、またはマイグレーションファイルです。パスが指定されていない場合は、作業ディレクトリ内で検出します(*.sql、schema.prisma、models.py、マイグレーションディレクトリを検索)。何も見つからない場合は、その旨を明確に伝え、ファイルを指定するか、/claude-db:design を実行して作成するよう提案してください。

実行内容

  1. スキーマのパスを解決します($ARGUMENTS から取得するか、上記の方法で検出)。
  2. 生成スクリプトを実行します。
    node scripts/gen-seed.mjs --file <schema> --rows N [--format sql|json]
    
    • --rows N のデフォルトは 5 です(1~1000 の範囲に制限)。--format のデフォルトは sql です。json を指定すると、ステートメントが配列とメタデータで返されます。
    • スクリプトは、各テーブルの外部キー参照先が先に挿入されるよう、テーブルをトポロジカルソートします。外部キー列には有効な親 ID を設定し、自動採番/ID 列の主キーはスキップします。
  3. 結果を提示します。
    • 挿入順序(依存関係順、親 → 子)と、テーブルごとの行数。
    • テーブルごとに順序立ててまとめた、生成された INSERT ステートメント。
    • パーサーの信頼度と、スキップされたテーブルや無視された循環参照。
  4. ファイルへの保存を提案します(例:seed.sql や fixtures.json)。ユーザーがパスを確認した場合にのみ書き込みます。確認がなければ、結果をそのまま表示します。

注意事項

  • 設計上、決定論的です。同じ --rows で再実行するとバイト単位で同一の出力が得られるため、シードの差分確認や再現が容易です。
  • 値は例示用のプレースホルダーです([email protected] のようなメールアドレス、固定のタイムスタンプ、連番の ID など)。本番環境で使える現実的なデータではなく、プライバシーにも配慮されていません。
  • 循環する外部キーは順序付けの対象外です。遅延制約や自己参照のケースでは、生成後に手動で調整が必要になる場合があります。

開発/テスト用フィクスチャ専用です。生成したシードを本番データベースに対して実行しないでください。ユーザーの言語(EN/ES)で応答してください。

コメント