Hvordan jeg opgraderede Ghost CMS fra 5 til 6 ved at ændre et enkelt tal
Nogle gange handler DevOps-livet om indviklede pipelines, perfekt orkestrerede deployments og ti lag CI/CD-tjek. Andre gange ... handler det om afslappet at redigere ét tal og se hele dit site gå et niveau op.
Situationen
Jeg kørte mit site på Ghost 5, containeriseret og deployet via Docker på DigitalOcean App Platform, med billeder gemt på DO Spaces (S3). Alt var stabilt, smukt og ... begyndte at føles en smule for komfortabelt. Ghost 6 var netop blevet udgivet og lovede skinnende nye features og forbedringer under motorhjelmen.
Selvfølgelig kunne en opgradering betyde, at man omhyggeligt læser release notes, tester i staging, verificerer tema-kompatibilitet og laver en langsom, elegant rollout.
Det gjorde jeg naturligvis ikke.
"Opgraderings"-planen
Jeg åbnede min Dockerfile og stirrede på linjen:
FROM ghost:5Den så så uskyldig ud. Så enkel. Og så tænkte jeg: Hvad nu hvis ...
FROM ghost:6Det var det. Det var planen.
Commit
Jeg redigerede filen direkte i GitHubs web-UI. Ingen lokal clone, ingen VS Code, ingen linting, ingen fanfare. Bare rå, ufiltreret selvtillid.
Commit-besked:
feat: YOLO Ghost 6 upgradeDeployment
I løbet af få sekunder opdagede DigitalOcean App Platform ændringen, byggede det nye image og deployede det. Jeg åbnede mit site, klar til at se, om jeg lige havde bricket min blog.
I stedet loadede alt perfekt — bortset fra Ghosts vedvarende besættelse af at have routes.yaml og redirects.yaml på det lokale filsystem, som om det var 1998. Selv med mit S3-setup skal de filer stadig mountes et sted — måske kopierer jeg dem bare ind i containeren. Eller endnu bedre ... magisk S3-sync.
Resultatet
- Ghost CMS 6, kører problemfrit.
- Ingen downtime.
- Ingen komplekse migrationsscripts.
- Et selvtilfreds udviklergrin.
Moralen i historien
Nogle gange er den enkleste løsning virkelig bare at ændre et enkelt tal. Men husk: Det virkede, fordi mit setup allerede var kompatibelt med Ghost 6 — dine resultater kan variere.
Og undervurdér aldrig glæden ved at deploye produktionsændringer fra GitHubs web-UI, som om det var 2012.
Næste gang nogen spørger, hvordan jeg håndterer opgraderinger, siger jeg bare: "Jeg inkrementerer heltal for at leve."