---
name: Database Migration
slug: database-migration
category: DevOps
description: Database Migration converts SQLite schemas to PostgreSQL or Supabase migrations and checks type, key, and constraint compatibility. Use it when moving an app database to Postgres and generating deployable SQL.
github: "https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/db-migrate"
language: Shell
stars: 192
forks: 61
install: "npx degit https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/db-migrate ~/.claude/skills/db-migrate"
installs_to: ~/.claude/skills/db-migrate
source_path: .claude/skills/db-migrate/SKILL.md
collection_size: 16
category_size: 1013
collection_url: "https://dirskills.com/collections/alexeykrol/claude-code-starter"
added: 2026-09-06T05:19:13.847Z
last_synced: 2026-09-06T05:19:13.847Z
canonical_url: "https://dirskills.com/skills/database-migration"
---

# Database Migration

Database Migration converts SQLite schemas to PostgreSQL or Supabase migrations and checks type, key, and constraint compatibility. Use it when moving an app database to Postgres and generating deployable SQL.

**Install:**

```bash
npx degit https://github.com/alexeykrol/claude-code-starter/tree/main/.claude/skills/db-migrate ~/.claude/skills/db-migrate
```

## README

# Skill: Database Migration

## Workflow: SQLite → PostgreSQL/Supabase

### 1. Анализ текущей схемы

```bash
# Извлечь схему из SQLite
sqlite3 database.db ".schema" > schema-sqlite.sql
```

### 2. Конвертация типов

| SQLite | PostgreSQL |
|--------|-----------|
| INTEGER | INTEGER / BIGINT |
| TEXT | TEXT / VARCHAR |
| REAL | DOUBLE PRECISION |
| BLOB | BYTEA |
| DATETIME (text) | TIMESTAMPTZ |
| BOOLEAN (0/1) | BOOLEAN |
| AUTOINCREMENT | SERIAL / GENERATED ALWAYS AS IDENTITY |

### 3. Генерация PostgreSQL схемы

- Преобразовать типы
- Добавить TIMESTAMPTZ вместо TEXT для дат
- Заменить AUTOINCREMENT на SERIAL
- Добавить Row Level Security (RLS) для Supabase
- Сгенерировать миграционный файл

### 4. Проверка

- Валидировать SQL синтаксис
- Проверить foreign keys
- Проверить индексы
- Проверить constraints

### 5. Деплой

**Staging (автономно):**
```bash
# Применить на staging
psql $STAGING_DATABASE_URL -f migration.sql
```

**Production (с подтверждением):**
- Показать пользователю план миграции
- Дождаться подтверждения
- Применить
- Проверить результат

## Supabase-специфика

- Автоматически добавлять RLS policies
- Использовать Supabase CLI если доступен:
  ```bash
  supabase db push
  ```
- Генерировать TypeScript типы:
  ```bash
  supabase gen types typescript --local > src/types/database.ts
  ```
