一键导入
pgd
PGD — справочник по формату и CLI pgDesigner. Используй при работе с .pgd файлами.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
PGD — справочник по формату и CLI pgDesigner. Используй при работе с .pgd файлами.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
API Health — проверка здоровья JSON-RPC сервиса через SMD. Используй когда нужно убедиться что RPC-endpoint жив, собрать тайминги методов или диагностировать недоступность API.
Appkit — библиотека vmkteam/appkit: метрики, pprof, HTTP client, service metadata, X-Request-ID. Используй при подключении метрик/pprof в сервис, работе с HTTP-клиентом appkit или добавлении корреляционных ID.
CI/CD — GitLab CI + Nomad deploy для Go-сервисов vmkteam. Используй при редактировании .gitlab-ci.yml, *.nomad.hcl, настройке пайплайна или дебаге деплоя.
Colgen — генератор коллекций для Go-структур. Используй при работе с collection.go и конвертерами между слоями.
Commit message — краткое сообщение коммита на английском из git diff. Используй перед `git commit`, после /solve, или при явной просьбе 'сгенерируй commit message'.
Cron — менеджер cron-задач с UI, middleware и Prometheus-метриками. Используй при добавлении/правке cron-задачи, подключении пакета vmkteam/cron или настройке CronConfig.
| name | pgd |
| description | PGD — справочник по формату и CLI pgDesigner. Используй при работе с .pgd файлами. |
.pgd — git-friendly XML-формат pgDesigner для схем PostgreSQL.
Полная спецификация: https://pgdesigner.io/docs/pgd-format (XSD: pgd-format.xsd).
CLI: pgdesigner (не pgd).
schema.table<index> — на уровне <schema>, НЕ внутри <table> (частая ошибка при конверсии из PDD)<table> ломает диф: columns → pk → fk → unique → check → exclude → with → partition-by → partition"true"/"false" (не "0"/"1" как в PDD)nullable default "true" — для NOT NULL ставь явно nullable="false"<?xml version="1.0" encoding="UTF-8"?>
<pgd version="1" pg-version="18" default-schema="public">
<pgd>
├── <project>/<settings> naming, defaults, linting
├── <database> имя, кодировка, коллация
├── <roles> <tablespaces> <extensions>
├── <types> enum, composite, domain, range
├── <sequences>
├── <schema>
│ ├── <table>
│ │ └── column, pk, fk, unique, check, exclude, with,
│ │ partition-by, partition
│ └── <index> <-- на уровне schema!
├── <views> <functions> <triggers> <policies>
├── <comments> <grants> <rules>
└── <layouts> позиции/цвета редактора
Enum (редактор восстанавливает порядок <label> — ручная перестановка не ломает):
<enum name="user_status" schema="public">
<label>active</label>
<label>inactive</label>
</enum>
FK (inline в <table>, в отличие от PDD):
<fk name="fk_orders_user" to-table="users" on-delete="cascade" on-update="no action">
<column name="user_id" references="id"></column>
</fk>
Индекс по выражению / partial / covering:
<index name="idx_users_lower_email" table="users" using="btree">
<expression><![CDATA[lower(email)]]></expression>
<where><![CDATA[deleted_at IS NULL]]></where>
<include><column name="name"></column></include>
</index>
IDENTITY и generated:
<column name="id" type="bigint" nullable="false">
<identity generated="always"></identity>
</column>
<column name="full_name" type="text">
<generated stored="true"><![CDATA[first_name || ' ' || last_name]]></generated>
</column>
Партицирование:
<partition-by type="range"><column name="created_at"></column></partition-by>
<partition name="events_2024">
<bound>FOR VALUES FROM ('2024-01-01') TO ('2025-01-01')</bound>
</partition>
Полный синтаксис всех тегов и атрибутов: https://pgdesigner.io/docs/pgd-format.
| SQL | PGD |
|---|---|
CREATE TABLE | <table> в нужную <schema> |
ALTER TABLE ADD COLUMN | <column> в <table> |
CREATE INDEX | <index> в <schema> (не в <table>) |
ADD CONSTRAINT | <pk>/<fk>/<unique>/<check> в <table> |
CREATE TYPE | <enum>/<composite>/<domain> в <types> |
CREATE FUNCTION | <function> в <functions> |
| Аспект | PDD | PGD |
|---|---|---|
| Идентификация | числовые ID | имена |
| Типы | коды (25, 1043) | имена (text, varchar) |
| NOT NULL | NotNull="1" | nullable="false" |
| Индексы | внутри ENTITY | в <schema> |
| FK | секция REFERENCES | <fk> inline |
| Булевы | "0"/"1" | "true"/"false" |
pgdesignerpgdesigner generate schema.pgd [-o schema.sql] # DDL
pgdesigner diff old.pgd new.pgd [-f json] # ALTER (используется в /pgmigrator)
pgdesigner lint schema.pgd [-fix] # 75 правил
pgdesigner convert schema.pdd|schema.sql|"postgres://..." -o project.pgd
pgdesigner testdata schema.pgd [-seed 42 -rows 100]