# postgres-nio

Скилл подсказывает агенту, как работать с PostgreSQL из Swift через postgres-nio: подключение, пул, подготовленные запросы и загрузка COPY FROM.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 62
- Автор: wendylabsinc
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/wendylabsinc/claude-skills/tree/HEAD/postgres-nio/SKILL.md
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/skills/postgres-nio

## Что делает

Этот скилл подгружает агенту справочник по библиотеке postgres-nio и её возможностям в Swift. Внутри — как завести `PostgresClient`, как выполнять запросы через async/await и как декодировать строки в кортежи или собственные типы. Отдельно разобраны подготовленные запросы через `PostgresPreparedStatement`, транзакции с `withConnection` и массовая вставка через `copyFrom` с CSV.

Есть раздел про конфигурацию соединения: TLS в режимах `.disable`, `.prefer` и `.require`, ограничения пула и подключение через Unix-сокет. Для интерполяции в SQL агент увидит, что значения уходят параметрами `$1, $2, …`, а имена таблиц передаются через `unescaped`. Это важная деталь: `unescaped` рассчитан только на доверенные имена, пользовательский ввод туда пускать нельзя. Ещё в скилле есть таблица соответствия типов Swift и PostgreSQL и разбор ошибок `PSQLError` по кодам вроде `.uniqueViolation`.

Рядом лежит файл `references/postgres-patterns.md` — его агент открывает, когда вопрос уходит в детали протокола или потоковой выдачи строк. Сам скилл ничего не устанавливает в проект: чтобы код из примеров собрался, в `Package.swift` должна быть зависимость `postgres-nio` версии от 1.21.0.

## Требования
- Работает с: PostgreSQL

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wendylabsinc/claude-skills --skill postgres-nio -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/postgres-nio/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/postgres-nio/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wendylabsinc/claude-skills --skill postgres-nio -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/postgres-nio/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wendylabsinc/claude-skills --skill postgres-nio -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/postgres-nio/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install wendylabsinc/claude-skills postgres-nio
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/postgres-nio/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add wendylabsinc/claude-skills --skill postgres-nio -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/wendylabsinc/claude-skills --path postgres-nio
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/postgres-nio/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add wendylabsinc/claude-skills --skill postgres-nio -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/wendylabsinc/claude-skills/tree/HEAD/postgres-nio/SKILL.md

## Когда брать
- разложить запрос к PostgreSQL на параметры без склейки строк
- настроить пул соединений и таймауты простоя
- описать подготовленный запрос с типизированной строкой результата
- залить большой набор строк через COPY FROM
- различить ошибки нарушения уникальности и внешнего ключа

## Примеры запросов агенту
- Покажи, как подключиться к PostgreSQL через `PostgresClient` с пулом соединений
- Перепиши этот запрос на подготовленный запрос `PostgresPreparedStatement` в Swift
- Как через `copyFrom` загрузить строки из массива в таблицу `users`?

## Похожие
- [postgres-patterns](https://affpapa.org/nevibecode/skills/postgres-patterns.md) — скилл · 5200 установок
- [postgres-best-practices](https://affpapa.org/nevibecode/skills/neondatabase-postgres-best-practices.md) — скилл · 1900 установок
- [postgres](https://affpapa.org/nevibecode/skills/sanjay3290-postgres.md) — скилл · 620 установок
- [design-postgres-tables](https://affpapa.org/nevibecode/skills/design-postgres-tables.md) — скилл · 613 установок
- [Postgres MCP](https://affpapa.org/nevibecode/mcp/edelciomolina-postgres-mcp.md) — MCP-сервер · ★ 5
- [migrate-postgres-tables-to-hypertables](https://affpapa.org/nevibecode/skills/migrate-postgres-tables-to-hypertables.md) — скилл · 355 установок

Из того же набора: [wendylabsinc/claude-skills](https://affpapa.org/nevibecode/by/wendylabsinc/claude-skills.md) — 7 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
