Skip to content

Creating Fresh Prisma Baseline

Procedura tworzenia nowego baseline migracji — gdy historia migracji jest rozsynchronizowana ze schematem w bazie danych.

Kiedy użyć: Gdy prisma migrate status pokazuje niespójności lub po serii db push które ominęły system migracji.

Bezpieczeństwo

Ta procedura NIE modyfikuje tabel z danymi. Zmienia tylko: - Pliki migracji w repozytorium (lokalne) - Tabelę _prisma_migrations w DB (tracking table — Prisma wewnętrznie)

Zero ryzyka utraty danych użytkowników.


Krok po kroku

1. Weryfikacja — schemat DB = schema.prisma

npm run db:pull:development > /tmp/db_schema.prisma
diff <(grep -v '^//' prisma/schema.prisma | grep -v '^$') <(grep -v '^//' /tmp/db_schema.prisma | grep -v '^$')
rm /tmp/db_schema.prisma

Jeśli diff jest pusty (lub różnice tylko w komentarzach/formatowaniu/kolejności kolumn) — OK. Jeśli są różnice w kolumnach/tabelach — STOP, najpierw rozwiąż niezgodności.

2. Usuń stare migracje (lokalnie)

rm -rf prisma/migrations/

3. Wygeneruj nowy baseline z aktualnego schematu

npm run db:create:baseline:development

Tworzy prisma/migrations/0_init/migration.sql z aktualnego schema.prisma.

Uwaga: Komenda wymaga dotenv (ładuje .env.development), bo prisma.config.ts waliduje env vars przy starcie. Jeśli plik migration.sql jest pusty (0 bajtów) po uruchomieniu — komenda się nie powiodła. Sprawdź output w terminalu.

4. Wyczyść historię migracji w DB

echo 'TRUNCATE TABLE "_prisma_migrations";' | npm run db:sql:stdin:development

To czyści TYLKO tabelę trackingową Prismy (która migracja była applied). Nie dotyka tabel z danymi.

5. Oznacz baseline jako applied

npm run db:apply:baseline:development

Prisma dopisze rekord: "migracja 0_init jest już zaaplikowana" — nie będzie próbowała jej uruchomić.

6. Weryfikacja

npm run db:status:development

Oczekiwany wynik: 1 migracja, status "applied", brak pending.

npm run db:gen
npm run build:development

Build musi przejść bez błędów.

7. Commit

git add prisma/migrations/
git commit -m "chore: prisma baseline — clean migration history matching production schema"

Utworzono: 2026-02-16