seed-database について
Rails開発でシードデータとテストシナリオを扱うスキルです。繰り返し実行できるシード、環境ごとのデータ管理、FactoryBot、認証情報の安全な扱い、検証手順を扱います。
主な機能
- 01find_or_create_by!による再実行可能なシード作成
- 02非本番データの環境別管理
- 03テストシナリオでのFactoryBot利用
- 04認証情報のハードコード回避
- 05Railsコマンドによるシード検証
活用シーン
- 01Railsアプリに静的な参照レコードを追加
- 02ファクトリーでテストデータを用意
- 03本番環境に影響しない開発データを投入
- 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
コアプロセス
- 冪等なシードを書く —
find_or_create_by!を使い、再実行しても安全にします。 - 環境ごとにスコープを設定する —
Rails.envチェックで非本番データをガードします。 - シードを実行する —
rails db:seedを実行します(新しいデータベースの場合はrails db:setup)。 - 冪等性を検証する —
rails db:seedをもう一度実行し、重複やエラーがないことを確認します。 - データを検証する —
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 — 複雑なシードワークフローやマイグレーションに依存するシードデータを実装する場合に使用します
出力スタイル
- 慣用的な Rails のシードパターンを使用してください。
- ファクトリを明確に構造化してください。
- HARD-GATE の認証情報と冪等性のルールに例外なく従ってください。
- 検証コマンドを含めてください:
rails db:seed、2 回目の冪等性実行、rails consoleでのスポットチェック。 - 言語 — 明示的に別途要求されない限り、英語でなければなりません。
統合
| スキル | チェーンするタイミング |
|---|---|
| write-tests | テストシナリオを設定する場合 |
| review-migration | DB スキーマの整合性を確保する場合 |
コメント
Markdown 対応