feat: create Makefile for managing migrations
This commit is contained in:
3 files changed
+27
-6
No files matched your search
@@ -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.
|
||||
|
||||
|
||||
Reference in new issue
Block a user