feat: create Makefile for managing migrations
Backend / Lint i formatowanie (pull_request) Failing after 14s
Backend / Testy i kontrakt API (pull_request) Failing after 1m8s
Backend / Testowy build obrazu (pull_request) Skipped
Panel / Lint, typy i build (pull_request) Successful in 1m19s

This commit is contained in:
mmacierzanka committed 2026-09-30 19:38:16 +02:00
1 parent 1584b5fbd0
commit 0b1b448766
3 files changed
+27 -6

No files matched your search

+6 -4
View File
@@ -36,6 +36,8 @@ katalogach `uploads/<guild_id>/`.
### Migracje bazy
Przy uruchomieniu bot automatycznie stosuje oczekujące migracje PostgreSQL.
Można je też uruchomić jawnie przez `make migrate`. Makefile korzysta wyłącznie
z Dockera i sprawdza, czy dostępne są Docker oraz `docker compose`.
Zastosowane wersje i ich nazwy są zapisywane w tabeli `schema_migrations`.
Każda migracja jest osobną klasą z metodami `apply` i `rollback`, w osobnym
pliku w `zyrarbot/storage/adapters/postgres/migrations/`. Pliki należy nazywać
@@ -47,12 +49,12 @@ dodać także do krotki `MIGRATIONS` w `migrations/__init__.py`. Obecna migracja
Rollback wszystkich wersji wykonaj poleceniem:
```bash
docker compose exec discord-bot python -m zyrarbot.storage.adapters.postgres.migration_runner rollback
make migration-rollback
```
Aby cofnąć wersje nowsze niż wskazana, dodaj `--to N`, na przykład `--to 1`
pozostawi migrację w wersji 1. Przed rollbackiem zatrzymaj bota poleceniem
`docker compose stop discord-bot`. Rollback wykonuje migracje w odwrotnej kolejności,
Aby cofnąć wersje nowsze niż wskazana, ustaw `TO`, na przykład
`make migration-rollback TO=1` pozostawi migrację w wersji 1. Przed rollbackiem
zatrzymaj bota poleceniem `docker compose stop discord-bot`. Rollback wykonuje migracje w odwrotnej kolejności,
usuwa ich wpisy z `schema_migrations` i może trwale skasować dane z cofanych tabel.
Po rollbacku uruchomienie bota ponownie zastosuje brakujące migracje.