.env.local
i Sanity:- Variabler som har prefikset
SANITY_STUDIO_
blir automatisk inkludert i Sanity CLI-verktøy, utviklingsserveren og «bundler». - Brukes på følgende måte:
process.env.SANITY_STUDIO_
…
- Variabler som har prefikset
#sanity 3
Ting jeg har lært om sanity
Jeg har også skrevet tekster om denne emneknaggen. Se dem her.-
13. august 2025
-
28. januar 2025
- Fullførte kurset Handling schema changes confidently og lærte om endringer av skjema, migrering av data, eksport og import av data.
- Vi kan laste opp hele datasett
npx sanity@latest dataset import ~/path/to/production.tar.gz production
. - Kan validere med
npx sanity@latest documents validate
. - For å endre navn på et felt kan man gå frem på følgende måte:
- Legge til nytt felt med nytt navn.
- Deaktivere gammelt felt
deprecated: { reason: "Use the event Format field insteda."}
- Oppdatere spørringen for å hente fra den nye feltet, med mulighet til å falle tilbake på gammelt felt.
- Oppdatere GROQ-spørring i front-end filer til å støtte begge felt ved bruk av «coalesce»:
"eventType": coalesce(format, eventType)
.- Koden over betyr at man skal bruke
format
, om den har verdi, og knytte den tileventType
. Omformat
er tom, skaleventType
brukes.
- Koden over betyr at man skal bruke
- Lag et migrasjonsscript for å forberede flytting av data fra gammelt felt til nytt:
npx sanity@latest migration create "Replace event type with event format"
. - I scriptet sett
to
ogfrom
til korrekte feltnavn. - Kjør
npx sanity@latest migration list
for å vise migrasjonslister. - Kjør en «dry run» for å se hvordan en migrasjon vil påvirke studio:
npx sanity@latest migration run replace-event-type-with-event-format
. - Eksporter gammel database:
npx sanity@latest dataset export production
. - Ønsker du å tilbakestille til et stadie før migreringen, bruk:
npx sanity@latest dataset import production.tar.gz production --replace
. - Kjør migrering med
npx sanity@latest migration run replace-event-type-with-event-format --no-dry-run
. - Kjør validate på nytt for å se etter 0 errors:
npx sanity@latest documents validate -y
- Fjern støtten for gammelt felt.
- Slett fra GROQ i front-end:
"eventType": coalesce(format, eventType)
- Endre i front-end. I dette tilfellet fra
eventType
tilformat
- Slett fra GROQ i front-end:
- Man kan også bruke en tilnærming Sanity kaller «indempotent».
- Betyr at man skal kunne kjøre migrasjonen flere ganger med samme resultat.
- Hindre at migrering skaper uønskede endringer.
- Kan bruke filter i scriptet for å velge kun de dokumentene som skal migreres.
- Ikke alltid filter kan brukes, da kan vi legge til en nøkkel når vi migrerer og hoppe over dokumenter som allerede har nøkler.
- Filter:
import {defineMigration, at, setIfMissing, unset} from 'sanity/migrate' const from = 'eventType' const to = 'format' export default defineMigration({ title: 'Replace event type with event format', // documentTypes: ['event'], filter: '_type == "event" && defined(eventType) && !defined(format)', migrate: { document(doc, context) { return [at(to, setIfMissing(doc[from])), at(from, unset())] }, }, })
- idempotenceKey (nøkkel):
import {defineMigration, at, setIfMissing, unset, insert} from 'sanity/migrate' // should be unique for the migration but never change const idempotenceKey = 'xyz' const from = 'eventType' const to = 'format' export default defineMigration({ title: 'Replace event type with event format', // documentTypes: ['event'], filter: '_type == "event" && defined(eventType) && !defined(format)', migrate: { document(doc, context) { if ((doc?._migrations as string[] || []).includes(idempotenceKey)) { // Document already migrated, so we can skip return } return [ at(to, setIfMissing(doc[from])), at(from, unset()), //… add idempotence key at('_migrations', setIfMissing([])), at('_migrations', insert(idempotenceKey, 'after', 0)), ] }, }, })
-
21. januar 2025
- Gjennomførte kurs Day One with Sanity Studio og Excellent editorial experiences om Sanity Studio .
- Lærte om nye måter å definere datatyper på med valideringer, begrensninger, hjelpetekster, betingelser med mer.
- Lærte om hvordan man kan tilpasse Sanity Studio ved å lage faner, egne lister og utseende.
- Jeg husker nå hvorfor jeg likte Sanity så godt for noen år siden.