Dansk hosting fra Aalborg
Servere i Europa
24/7/365 dansk support
[email protected]
WooCommerce fejlfinding 8 min. læsning Opdateret 3. oktober 2026

WooCommerce-databaseopdateringen hænger – sådan får du den i mål

„WooCommerce database update required“ forsvinder ikke? Tag backup, få Action Scheduler-køen i gang, eller kør opdateringen færdig med WP-CLI.

WooCommerce-databaseopdateringen hænger – sådan får du den i mål

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 export tager 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 serSandsynlig årsagTrin
Antallet af afventende update-handlinger falderOpdateringen kører, den er bare storVent, og følg med (trin 1)
Handlingerne står som forfaldne og falder ikkewp-cron eller Action Scheduler kører ikkeTrin 2
En eller flere handlinger står som mislykkedePHP-fejl, timeout eller hukommelsesgrænseTrin 3
Køen er tom, men beskeden bliver ståendeVersionsnummeret blev ikke opdateretTrin 4
Opdateringen fejler hver gang på samme stedProblem i en tabel eller et tungt databasekaldTrin 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.

Terminaleksempel: afventende opdaterings-handlinger i Action Scheduler står stille
Genskabt terminaleksempel, 30. august 2026: opdateringens delopgaver ligger klar i køen, men intet afvikler dem – cron-sporet skal undersøges først. Eksemplet er ikke data fra hostious.io.

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å

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.

Skrevet af Marc, stifter af Hostious

Jeg hedder Marc og har stiftet Hostious. Vi hoster WordPress-hjemmesider og WooCommerce-webshops for danske virksomheder – drevet fra Aalborg-området med servere i Europa – og jeg skriver guiderne her ud fra det, vi ser i driften hver dag.

Udgivet 30. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026