# Generating Database Seeder

> Generates and executes a database seeder script to populate MongoDB with sample data based on modern Zod schemas. Use this to prepare an environment for functional parity testing.

- Skill: `googlecloudplatform/generating-database-seeder` (Agent Skill)
- Install (CLI): `npx skillmds@latest add googlecloudplatform/generating-database-seeder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/googlecloudplatform/generating-database-seeder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: GoogleCloudPlatform (https://skillmd.com/u/googlecloudplatform)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/googlecloudplatform/generating-database-seeder

---


# Generating Database Seeder

Establish a clean, reproducible database state for development and verification.

> [!IMPORTANT]
> **DATABASE STRATEGY**: Skip this skill if the modernization strategy is to **use the existing legacy database directly**. This tool is only for cases where you need a fresh dataset to test in isolation.

## Objective
Generate a script that populates the modern database with sample records (Primary and Sub-resources) that satisfy the Zod validation rules and established relational integrity.

## Workflow

1.  **Analyze Schemas**: Read the modern schemas (e.g., `src/lib/models/schema.ts`) to identify required fields, data types, and default values.
2.  **Generate Realistic Samples**: Create a set of sample data that covers:
    - **Primary Resources**: Users, Accounts, or root entities.
    - **Sub-resources**: Related items linked via `ObjectId`.
    - **Edge Cases**: Empty strings, long text, and various tag/category combinations.
3.  **Implement Seeder**: Create the seeder script (e.g., `src/lib/db/seeder.ts`).
    - **Invariants**: The script MUST clear existing collections before insertion to ensure a deterministic state.
    - **Security**: Hash passwords and sanitize inputs using the project's utility functions.
4.  **Execute & Verify**: Run the seeder (e.g., `npm run db:seed`) and confirm the records exist in the database with the correct structure.

## Output
A functional seeding command and a populated database ready for Phase 5 verification.

