Kort svar: WooCommerce-databaseopdateringen kører som små baggrundsjobs gennem Action Scheduler – den hænger derfor, når baggrundsjobs generelt ikke bliver afviklet: wp-cron er gået i stå, køen er stoppet af et fejlet job, eller processen når aldrig at køre færdig. Tag backup, få cron til at køre, og lad opdateringen fortsætte – eller kør den målrettet færdig med WP-CLI, som ikke er afhængig af cron.
Fagligt gennemgået: 2. oktober 2026
Beskeden „WooCommerce database update required“ – eller en opdatering, der har stået på „behandler“ i timevis – skaber nervøsitet, fordi den ligner et databaseproblem. Det er den sjældent. Opdateringen er designet til at køre i små bidder i baggrunden, netop så shoppen kan holde åbent imens; når den hænger, er det maskineriet bag bidderne, der står stille.
Guiden viser, hvordan du ser, om opdateringen bevæger sig, hvordan du får baggrundsjobs i gang igen, og hvordan du kører opdateringen færdig manuelt, når det er nødvendigt.
Før du ændrer noget: Tag en fuld databasebackup, før du genstarter, rydder eller kører noget manuelt. En databaseopdatering ændrer strukturen i shoppens vigtigste data. Den er bygget til at være sikker – men netop når noget allerede driller, skal du kunne komme tilbage. Kontrolpanelets backup eller
wp db exporttager få minutter og gør resten af guiden risikofri.
Hvorfor WooCommerce skal opdatere databasen
Nogle WooCommerce-versioner ændrer, hvordan data gemmes: nye tabeller, nye kolonner eller data, der skal flyttes eller omregnes. Selve pluginfilerne er opdateret i det øjeblik, du klikker „Opdater“ under Plugins, men databasen følger først med, når opdateringsrutinerne har kørt. Indtil da gemmer WooCommerce to versionsnumre, der ikke er ens: pluginets version og databasens version.
Små opdateringer kører typisk automatisk og ubemærket. Ved større versionsløft eller på shops med mange ordrer og produkter viser WooCommerce beskeden i wp-admin og lægger opgaverne i kø, så de kan afvikles i baggrunden uden at lukke shoppen.
Sådan kører opdateringen egentlig
Når du klikker „Opdater WooCommerce-database“, lægges opgaven i Action Scheduler – samme baggrundskø, der håndterer webhooks og planlagte mails. Hver delopgave er en handling med hooken woocommerce_run_update_callback i gruppen woocommerce-db-updates. Køen afvikles primært af wp-cron, og Action Scheduler kan også sætte en kørsel i gang, mens du er i wp-admin.
Det giver én vigtig konsekvens: opdateringen kan aldrig blive færdig, hvis baggrundsjobs ikke kører. Derfor er en hængende databaseopdatering ofte bare det mest synlige symptom på et generelt cron-problem – typisk sammen med forfaldne planlagte handlinger.
| Det du ser | Sandsynlig årsag | Trin |
|---|---|---|
| Antallet af afventende update-handlinger falder | Opdateringen kører, den er bare stor | Vent, og følg med (trin 1) |
| Handlingerne står som forfaldne og falder ikke | wp-cron eller Action Scheduler kører ikke | Trin 2 |
| En eller flere handlinger står som mislykkede | PHP-fejl, timeout eller hukommelsesgrænse | Trin 3 |
| Køen er tom, men beskeden bliver stående | Versionsnummeret blev ikke opdateret | Trin 4 |
| Opdateringen fejler hver gang på samme sted | Problem i en tabel eller et tungt databasekald | Trin 5 |
1. Tjek om den overhovedet bevæger sig
Gå til WooCommerce → Status → Planlagte handlinger, og søg efter „update“. Falder antallet af afventende woocommerce_run_update_callback-handlinger over nogle minutter, kører opdateringen faktisk – den er bare stor. Lad den arbejde. Står tællerne stille, og hændelserne er „forfaldne“, er køen gået i stå – videre til trin 2.

Med WP-CLI kan du sammenligne de to versionsnumre og tælle handlingerne efter status. Tabelpræfikset er ofte wp_, men tjek dit eget med wp db prefix:
wp option get woocommerce_version
wp option get woocommerce_db_version
wp db query "SELECT status, COUNT(*) FROM wp_actionscheduler_actions WHERE hook = 'woocommerce_run_update_callback' GROUP BY status"
Kør forespørgslen et par gange med nogle minutters mellemrum. Falder tallet for pending, er alt i orden. Står det stille, eller vokser tallet for failed, er det dér, du skal lede.
2. Få baggrundsjobs til at køre
Følg cron-sporet i wp-cron-guiden: bekræft at wp-cron.php svarer, og sæt en rigtig server-cron op, hvis den mangler. Typiske årsager til, at køen står stille, er en ensom DISABLE_WP_CRON i wp-config.php uden server-cron, et site med meget lidt trafik eller en firewall, der blokerer serverens kald til sig selv.
Tjek også, om der ligger tusindvis af andre forfaldne handlinger foran opdateringen. Action Scheduler afvikler køen i portioner, og en stor bunke gamle eller fejlende handlinger fra andre plugins kan forsinke alt bagved. Ryd op i de handlinger, der hører til plugins, du ikke længere bruger, og løs årsagen til dem, der bliver ved med at fejle.
3. Find de fejlede jobs
Filtrér Planlagte handlinger på status „Mislykket“. Hver handling har en log med fejlbeskeden – den fortæller, om delopgaven stoppede på en PHP-fejl, en timeout eller manglende hukommelse. Et enkelt job, der fejler igen og igen (typisk fra et tredjepartsplugin), kan blokere afviklingen; fejlbeskeden på jobbet fortæller, hvilket plugin det tilhører.
- Timeout: delopgaven tager for lang tid i en webrequest. WP-CLI i trin 4 er ikke underlagt samme tidsgrænse – se også Maximum execution time exceeded.
- Hukommelse: „Allowed memory size exhausted“ i loggen betyder, at PHP-grænsen er for lav til opgaven – se guiden om hukommelsesfejl.
- Databasefejl: fejl om en tabel, en kolonne eller en lås peger på databaseniveauet – fortsæt til trin 5.
- Fejl fra et andet plugin: et plugin, der hægter sig på WooCommerces hooks, kan få delopgaven til at fejle. Opdatér pluginnet, eller deaktivér det midlertidigt, mens opdateringen kører færdig.
4. Kør den færdig med WP-CLI
Med terminaladgang kan du køre opdateringen uden om både cron og tidsgrænserne i en webrequest. wp wc update kører WooCommerces databaseopdatering til ende, og wp action-scheduler run afvikler den hængende kø – eventuelt begrænset til opdateringsgruppen:
wp wc update
wp action-scheduler run --group=woocommerce-db-updates
wp option get woocommerce_db_version
Det er den hurtigste vej på store shops, hvor opdateringen omfatter mange ordrer. Har du ikke terminaladgang, findes værktøjet Opdater database under WooCommerce → Status → Værktøjer, som starter opdateringsrutinen igen fra wp-admin. Kan du ingen af delene, kan Hostious’ support hjælpe med kørslen – sig, at databaseopdateringen hænger, og hvad status-siden viser.
Er køen tom, og matcher de to versionsnumre, men beskeden står der stadig, er det som regel blot en gammel besked. Genindlæs wp-admin, og ryd en eventuel object cache med wp cache flush, før du konkluderer, at noget er galt.
5. Når fejlen ligger i databasen
Fejler opdateringen hver gang på samme sted med en databasefejl, kan en tabel være beskadiget, eller en strukturændring på en meget stor tabel kan tage længere tid, end forbindelsen tillader. Tjek først tabellerne:
wp db check
Melder kommandoen fejl på en tabel, så følg guiden om en beskadiget databasetabel, før du prøver opdateringen igen. Ret aldrig databasestrukturen i hånden med SQL for at „hjælpe“ opdateringen på vej – WooCommerce forventer, at hver delopgave har kørt i den rigtige rækkefølge.
Verifikation
Opdateringen er i mål, når beskeden er væk fra wp-admin, databaseversionen under WooCommerce → Status matcher plugin-versionen, og Planlagte handlinger ikke længere indeholder afventende update-callbacks. Tag derefter en stikprøve: åbn en ordre, et produkt og checkout, og læg en testordre, så du ved, at shoppen opfører sig normalt. Og løs det underliggende cron-problem – ellers hænger den næste opdatering også.
Rul tilbage, hvis det går galt
Rul ikke blot WooCommerce-pluginnet tilbage til en ældre version efter en databaseopdatering. Databasen er så i en nyere form, end den gamle kode forventer, og det kan give nye fejl. Skal du tilbage, så gendan databasebackuppen fra før opdateringen sammen med den gamle pluginversion – og vær opmærksom på, at ordrer lagt efter backuppen skal genskabes. Guiden om at gendanne fra backup uden at miste nye ordrer viser, hvordan du gør.
Undgå det næste gang
- Hav en rigtig server-cron, så baggrundsjobs kører uanset trafik.
- Test store WooCommerce-opdateringer på staging, før de rammer den rigtige shop.
- Opdatér uden for spidsbelastning, og tag en backup lige før.
- Hold øje med Planlagte handlinger, så fejlende jobs ikke hober sig op i måneder.
Læs også
- Hub: WooCommerce fejl og fejlfinding
- Forfaldne planlagte handlinger
- wp-cron virker ikke
- Databasetabel beskadiget
- Staging i WordPress: test ændringer før de går live
- WooCommerce hosting hos Hostious – daglig backup med selvbetjent gendannelse og staging fra Woo StartUp
Ofte stillede spørgsmål om databaseopdateringen
Kan kunderne handle, mens opdateringen kører?
Ja – opdateringen kører i små bidder netop for at holde shoppen åben. Planlæg alligevel større versionsløft uden for spidsbelastning, så baggrundsarbejdet ikke konkurrerer med travl trafik.
Er det farligt at klikke på opdater-knappen igen?
Nej – opdateringen er bygget til at kunne genoptages, og allerede kørte delopgaver gentages ikke destruktivt. Men klik ikke i ring: finder du ikke årsagen til, at køen står stille, ændrer flere klik ingenting.
Hvor længe må en databaseopdatering tage?
Minutter på små shops; på store shops med mange tusinde ordrer kan den arbejde længere. Det afgørende er ikke tiden, men om tælleren bevæger sig – en kø, der falder, er sund; en kø, der står stille i en time, er gået i stå.
Kan jeg bare rulle WooCommerce tilbage, hvis opdateringen fejler?
Ikke uden at gendanne databasen samtidig. Efter en databaseopdatering passer den gamle pluginversion ikke nødvendigvis til databasen. Gendan backuppen fra før opdateringen sammen med den gamle version, eller kør opdateringen færdig.
Udgivet 30. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026
