mcpField
S
seed-database

seed-database

github.com/igmarinデータ・データベース2839 回インストール4 週間前に更新
リポジトリ

seed-database について

Rails開発でシードデータとテストシナリオを扱うスキルです。繰り返し実行できるシード、環境ごとのデータ管理、FactoryBot、認証情報の安全な扱い、検証手順を扱います。

主な機能

  1. 01find_or_create_by!による再実行可能なシード作成
  2. 02非本番データの環境別管理
  3. 03テストシナリオでのFactoryBot利用
  4. 04認証情報のハードコード回避
  5. 05Railsコマンドによるシード検証

活用シーン

  1. 01Railsアプリに静的な参照レコードを追加
  2. 02ファクトリーでテストデータを用意
  3. 03本番環境に影響しない開発データを投入
  4. 04シード再実行時に重複がないことを確認

インストール

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

$npx skills add https://github.com/igmarin/rails-agent-skills --skill seed-database

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

同梱ファイルEXAMPLES.mdreferences/workflow.md

詳細

シードデータベース

開発データとテストデータを効果的に管理します。

クイックリファレンス

用途解決策
静的な参照データfind_or_create_by! を使った db/seeds.rb
テストシナリオspec/factories/ 内の FactoryBot
複雑なリレーションシップ両方の組み合わせ

HARD-GATE

NEVER commit production data to seeds
ALWAYS use factories for test-specific scenarios
ALWAYS make seeds idempotent (can run multiple times safely)
NEVER hardcode credentials (passwords, API keys, secrets) in seeds, factories, or examples
  - Use ENV variables (e.g., ENV.fetch('DEFAULT_SEED_PASSWORD')) or SecureRandom.hex(16) for non-production data
  - Use `rails credentials:edit` to manage production secrets, never commit them in code

コアプロセス

  1. 冪等なシードを書く — find_or_create_by! を使い、再実行しても安全にします。
  2. 環境ごとにスコープを設定する — Rails.env チェックで非本番データをガードします。
  3. シードを実行する — rails db:seed を実行します(新しいデータベースの場合は rails db:setup)。
  4. 冪等性を検証する — rails db:seed をもう一度実行し、重複やエラーがないことを確認します。
  5. データを検証する — rails console を開き、期待するレコードが正しい属性で存在するかをスポットチェックします。

最小限のインライン例

冪等性、環境スコープ、安全な認証情報をカバーする、コピー&ペースト可能な db/seeds.rb:

# db/seeds.rb

# Static reference data — safe to run repeatedly
Role.find_or_create_by!(name: 'admin') do |r|
  r.description = 'Full system access'
end

Role.find_or_create_by!(name: 'member') do |r|
  r.description = 'Standard user access'
end

# Development-only seed data — never runs in production
if Rails.env.development?
  User.find_or_create_by!(email: '[email protected]') do |u|
    u.role       = Role.find_by!(name: 'admin')
    u.password   = ENV.fetch('DEFAULT_SEED_PASSWORD', SecureRandom.hex(16))
  end
end

FactoryBot のファクトリ定義やより複雑なリレーションシップのパターンについては、EXAMPLES.md を参照してください。

拡張リソース(段階的開示)

これらのファイルは、その特定の内容が必要な場合にのみ読み込んでください:

  • EXAMPLES.md — 環境固有のパターンや FactoryBot のファクトリ定義を含む完全なシード例が必要な場合に使用します
  • references/workflow.md — 複雑なシードワークフローやマイグレーションに依存するシードデータを実装する場合に使用します

出力スタイル

  1. 慣用的な Rails のシードパターンを使用してください。
  2. ファクトリを明確に構造化してください。
  3. HARD-GATE の認証情報と冪等性のルールに例外なく従ってください。
  4. 検証コマンドを含めてください: rails db:seed、2 回目の冪等性実行、rails console でのスポットチェック。
  5. 言語 — 明示的に別途要求されない限り、英語でなければなりません。

統合

スキルチェーンするタイミング
write-testsテストシナリオを設定する場合
review-migrationDB スキーマの整合性を確保する場合

コメント