Migreringer av databaseskjema
Håndter endringer i databaseskjemaet med Prisma Migrate for smidig utvikling og utrulling.
Migreringer av databaseskjema er en gratis leksjon i Next.js 15 fullstack (App Router + Server Actions) på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Next.js 15 fullstack (App Router + Server Actions), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Next.js 15 fullstack (App Router + Server Actions) inneholder totalt 4 leksjoner.
Hva er databasemigreringer?
Etter hvert som applikasjonen utvikler seg, gjør også databasestrukturen det. Denne strukturen kalles også skjemaet.
Databasemigreringer er som versjonskontroll for databaseskjemaet. De gjør det mulig å håndtere endringer i databasestrukturen på en kontrollert og sporbar måte.
- De sørger for at databasen samsvarer med behovene til applikasjonen.
- De forhindrer datatap når skjemaet endres.
- De gir en tydelig historikk over alle endringer i skjemaet.
Hvorfor bruke Prisma Migrate?
Det kan være komplisert og feilutsatt å håndtere endringer i databaseskjemaet manuelt. Prisma Migrate forenkler denne prosessen betydelig.
- Automatisk generering: Den genererer SQL-migreringsfiler basert på endringer i Prisma-skjemaet.
- Historikksporing: Den lagrer en historikk over utførte migreringer, noe som gjør tilbakerulling og samarbeid i team enklere.
- Likhet mellom miljøer: Den sørger for at utviklings-, staging- og produksjonsdatabasene har riktig skjema.
Prisma-skjemafilen din
Prisma Migrate bruker filen schema.prisma som fasit for databaseskjemaet. Alle endringer du vil gjøre i databasestrukturen, begynner her.
La oss se på et enkelt schema.prisma-oppsett:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
name String
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}Initialisere den første migreringen
Når du setter opp Prisma-skjemaet for første gang, bør du opprette en innledende migrering for å bruke dette skjemaet på databasen. Til dette bruker du kommandoen prisma migrate dev.
Denne kommandoen gjør to hovedting:
- Genererer en ny migreringsfil (SQL) i mappen
prisma/migrations. - Bruker migreringen på databasen.
npx prisma migrate dev --name initial_setupForstå migreringsfiler
Etter at du har kjørt npx prisma migrate dev, oppretter Prisma en ny mappe i prisma/migrations med et tidsstempel og navnet du oppga (for eksempel 20231026123456_initial_setup).
I denne mappen finner du:
migration.sql: Denne filen inneholder de rå SQL-kommandoene som Prisma genererte for å opprette eller endre databasetabellene.migration.jsellermigration.ts: (Hvis du bruker TypeScript/JavaScript) Metadata om migreringen.
Det er viktig å lagre disse filene i versjonskontrollsystemet ditt!
Gjøre endringer i skjemaet
La oss si at du vil legge til et email-felt i User-modellen. Du oppdaterer ganske enkelt filen schema.prisma.
Prisma oppdager denne endringen og hjelper deg med å generere en ny migrering.
model User {
id Int @id @default(autoincrement())
name String
email String @unique // Added new field
posts Post[]
}Generere en ny migrering
Etter at du har endret schema.prisma, kjører du npx prisma migrate dev på nytt. Prisma sammenligner det oppdaterte skjemaet med den nåværende databasetilstanden og genererer en ny migreringsfil.
Deretter bruker Prisma denne nye migreringen, slik at email-kolonnen legges til i User-tabellen.
npx prisma migrate dev --name add_user_emailBruke migreringer i produksjon
I produksjonsmiljøer bruker du vanligvis npx prisma migrate deploy. Denne kommandoen bruker alle ventende migreringer som ennå ikke er kjørt på databasen.
I motsetning til migrate dev genererer ikke deploy nye migreringsfiler. Den bruker bare eksisterende filer. Dette gjør kommandoen trygg og forutsigbar ved produksjonsutrullinger.
npx prisma migrate deployKontrollere migreringsstatus
Hvis du vil se hvilke migreringer som er brukt på databasen, og hvilke som gjenstår, kan du bruke kommandoen npx prisma migrate status.
Dette er nyttig ved feilsøking eller når du vil kontrollere at databasen er oppdatert i henhold til skjemaet programmet forventer.
npx prisma migrate statusQuiz om Prisma Migrate-kommandoer
Hvilke av følgende påstander beskriver formålet med Prisma Migrate-kommandoene på riktig måte?
Oppsummering: Skjemamigreringer
Godt jobbet! Du har lært hvordan du effektivt kan administrere databaseskjemaet ditt ved hjelp av Prisma Migrate.
- Prisma Migrate hjelper deg med versjonskontroll av databaseskjemaet.
- Du definerer skjem endringer i
schema.prisma. npx prisma migrate devoppretter og bruker migreringer i utviklingsmiljøet.npx prisma migrate deploybruker eksisterende migreringer i produksjon.npx prisma migrate statuskontrollerer gjeldende migreringstilstand.
Dette kraftige verktøyet sørger for at databasestrukturen forblir konsistent og tilpasset programmets behov etter hvert som det vokser.
Lær deg TypeScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 88
Ofte stilte spørsmål
Er leksjonen «Migreringer av databaseskjema» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Next.js 15 fullstack (App Router + Server Actions), inkludert «Migreringer av databaseskjema», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Next.js 15 fullstack (App Router + Server Actions) inneholder totalt 4 leksjoner.
Hva lærer jeg i «Migreringer av databaseskjema»?
Håndter endringer i databaseskjemaet med Prisma Migrate for smidig utvikling og utrulling. Du øver på Next.js 15 fullstack (App Router + Server Actions) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Next.js 15 fullstack (App Router + Server Actions)?
Ingen tidligere erfaring er nødvendig. Next.js 15 fullstack (App Router + Server Actions) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Migreringer av databaseskjema»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Next.js 15 fullstack (App Router + Server Actions)-leksjonen?
Ja. Alle Next.js 15 fullstack (App Router + Server Actions)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Sette opp Prisma ORM
- CRUD med Server Actions
- Migreringer av databaseskjema
- Fylling av database og tilkoblingspooling