본문으로 건너뛰기
cccskills
무료GitHub에 공개

database-scaffolding

Scaffolds PostgreSQL database component with migrations, seeds, and management scripts.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구PostgreSQL
설치 방법 보기

포함된 파일(7)

  • SKILL.md6.0 KB
  • schemas/input.schema.json519 B
  • schemas/output.schema.json1.4 KB
  • templates/migrations/001_initial_schema.sql910 B
  • templates/package.json62 B
  • templates/README.md2.6 KB
  • templates/seeds/001_seed_data.sql711 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Database Scaffolding Skill

Creates database component structure for PostgreSQL-based projects.

What It Creates

The directory path depends on the component name as defined in sdd/sdd-settings.yaml. Delegate to the techpack-settings skill for directory path resolution — it maps component type (database) + name to a filesystem path (e.g., type=database, name=app-db → components/databases/app-db/). Database components support multiple instances (e.g., database-app-db/, database-analytics-db/).

components/database[-<name>]/
├── package.json              # Component package metadata
├── README.md                 # Component documentation
├── migrations/
│   └── 001_initial_schema.sql
└── seeds/
    └── 001_seed_data.sql

Template Variables

VariableDescription
{{PROJECT_NAME}}Project name for naming and comments

When to Use

Use when your project needs:

  • PostgreSQL database with version-controlled schema
  • Migration-based schema management
  • Seed data for development/testing
  • Scripts for database lifecycle management

Usage

After scaffolding, database operations are performed via the system CLI:

<plugin-root>/fullstack-typescript/system/system-run.sh database setup <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database teardown <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database migrate <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database seed <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database reset <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database port-forward <component-name>
<plugin-root>/fullstack-typescript/system/system-run.sh database psql <component-name>

Prerequisites

The CLI commands require:

  • PostgreSQL 14+ (client tools: psql, createdb, dropdb)
  • Environment variables set:
    • PGHOST - Database host
    • PGPORT - Database port
    • PGUSER - Database user
    • PGPASSWORD - Database password
    • PGDATABASE - Database name

Migration Conventions

Create numbered SQL files for sequential execution:

migrations/
├── 001_initial_schema.sql
├── 002_add_users_table.sql
├── 003_add_orders_table.sql
└── 004_add_indexes.sql

Each migration should:

  • Be wrapped in BEGIN/COMMIT for transactional safety
  • Be idempotent where possible (use IF NOT EXISTS)
  • Delegate to the postgresql skill for SQL syntax patterns, index strategies, and constraint conventions

Seed Conventions

Create numbered SQL files for seed data:

seeds/
├── 001_lookup_data.sql
├── 002_admin_users.sql
└── 003_sample_data.sql

Each seed file should:

  • Use ON CONFLICT DO NOTHING for idempotency
  • Be wrapped in transactions
  • Delegate to the postgresql skill for seed data patterns and idempotent insert conventions

Integration with Server Component

The database component works alongside the server component:

components/
├── database/           # Schema, migrations, seeds
│   └── migrations/
└── server/
    └── src/dal/        # Data access layer queries

The server's DAL layer imports types and executes queries against the schema defined in the database component.

Config Schema

When scaffolding a database component, the following config section is added to components/config/:

Minimal Config (envs/default/config.yaml)

database-{name}:
  host: localhost
  port: 5432
  name: appdb
  user: app
  passwordSecret: db-credentials
  pool: 10

TypeScript Type (types/database.ts)

export type DatabaseConfig = Readonly<{
  host: string;
  port: number;
  name: string;
  user: string;
  passwordSecret: string;
  pool: number;
}>;

JSON Schema (schemas/config.schema.json)

{
  "database-{name}": {
    "type": "object",
    "properties": {
      "host": { "type": "string" },
      "port": { "type": "number", "default": 5432 },
      "name": { "type": "string" },
      "user": { "type": "string" },
      "passwordSecret": { "type": "string" },
      "pool": { "type": "number", "default": 10 }
    },
    "required": ["host", "port", "name", "user", "passwordSecret"]
  }
}

Scaffold Spec

To scaffold a database component, build a spec and invoke the engine:

<plugin-root>/fullstack-typescript/system/system-run.sh scaffolding apply --spec spec.json

Variables

VariableSource
PROJECT_NAMEFrom sdd-settings.yaml project name

Operations

{
  "target_dir": "<project-root>",
  "base_dir": "<plugin-root>/skills",
  "variables": { "PROJECT_NAME": "<project-name>" },
  "operations": [
    {
      "type": "template_dir",
      "source": "components/database/database-scaffolding/templates",
      "dest": "components/databases/<database-name>"
    }
  ]
}

No conditions needed.

Input

Schema: schemas/input.schema.json

Accepts database name and optional project name for migration and seed template generation.

Output

Schema: schemas/output.schema.json

Returns the scaffolding engine result: created files, directories, and scripts; skipped paths; errors; and a human-readable summary.

Related Skills

  • techpack-settings — Authoritative source for database component settings schema and directory mappings.
  • postgresql — Delegate to this for SQL patterns, Docker/K8s deployment, schema management, and performance tuning. Provides migration SQL templates, seed data patterns, and introspection queries.
  • backend-scaffolding — Generates the server component that contains the DAL layer querying this database. The server's repository layer imports database connection config and executes queries against the schema defined here.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

Intent-to-command mappings for fullstack-typescript tech pack features.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

Orchestrates the full change lifecycle — routes actions to phase-specific sub-files.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

LiorCohen/sdd432026년 2월 24일 업데이트

LiorCohen의 스킬 모두 보기

이 스킬의 문제 신고