# SQL migracijos

Šis katalogas – inkrementiniai DB schemos pakeitimai jau egzistuojančioms
diegimo instancijoms. **Švieži diegimai naudoja `sql/schema.sql`**, ne šiuos
failus.

## Vardavimas

```
NNN_<short_description>.sql
```

Kur `NNN` – trijų skaitmenų eilės numeris (`001_`, `002_`, …). Failai
paleidžiami eilės tvarka.

## Pavyzdys

```
001_initial.sql                  ← startas (≈ tolygu schema.sql turiniui)
002_add_breaking_news_flag.sql   ← pridedamas trends.is_breaking_news
003_index_keyword_language.sql   ← naujas kombinuotas indeksas
```

## Taisyklės

- **Forward-only.** Down migracijos nedaromos. Jei reikia atšaukti –
  naują migraciją.
- **Idempotent kur įmanoma.** Pvz., `CREATE TABLE IF NOT EXISTS`,
  `ADD COLUMN IF NOT EXISTS` (MariaDB 10.3+ / MySQL 8.0.29+).
- **Skiltis viršuje – komentaras.** Trumpai paaiškinti, kas keičiama
  ir kodėl saugu.
- **Schema sinchronizuota.** Po migracijos pridėjimo BŪTINA atnaujinti
  `sql/schema.sql`, kad švieži diegimai gautų tą pačią galutinę būklę.
  Detaliau – `.claude/skills/db-migration/SKILL.md`.

## Paleidimas

```bash
# Vienos migracijos
mysql -u root -p trends_db < sql/migrations/002_add_breaking_news_flag.sql

# Visų eilės tvarka
for f in sql/migrations/*.sql; do
  echo "Vykdoma: $f"
  mysql -u root -p trends_db < "$f"
done
```

## Kada laikas pereiti prie Alembic

Jei migracijų > 20, arba reikia branch'ų / merge'ų – verta apsvarstyti
Alembic. Iki tol – rankinė tvarka pakankama ir aiškesnė.
