WordPress database søg og erstat

Interconnect/IT har udgivet en beta af version 3 af deres WordPress database søg/erstat script. Det indeholder en række forbedringer i forhold til version 2.1, men først og fremmest er det blevet lettere og sikrere at bruge.

Når vi laver nye websites, så vælger vi ofte at bruge en midlertidig URL på vores udviklingsserver så vi undgår at forstyrre et evt. eksisterende website. Når vi så er færdige og klar til at gå i luften med det nye website, burde det egentlig blot være et spørgsmål om at flytte WordPress filer og database til vores driftsserver. Så enkelt er det imidlertid ikke, da WordPress typisk har gemt den midlertidige URL  mange stedet rundt omkring i databasen. Dette script gør det let at lave søg/erstat operationer i databasen, og det er nu kommet i version 3 (beta).

I dette eksempel vil vi gerne flytte WordPress fra URL'en

http://h2g2.dk

til et nyt domæne på

http://newdomain.dk

Start med at flytte WordPress' filer og database til det nye domæne og hent så zip-filen med scriptet og pak den ud. Den udpakkede zipfil indeholder en mappe med navnet "secret-name-please" som igen indeholder selve scriptet. Ret "secret-name-please" til noget andet - i dette eksempel har vi kaldt mappen "replace" - og upload den til webserveren i den mappe der indeholder websitets rod. (Interconnect/IT lægger op til at man af sikkerhedshensyn skal kalde mappen noget der er svært at gætte, f.eks en række tilfældige tal og bogstaver, men i dette eksempel har vi valgt at gøre det let for os selv og så acceptere risikoen for at en hacker gætter navnet i den korte periode vi lader scriptet blive på serveren).

Når scriptet er uploadet kan det køres i browseren ved at skrive domænenavnet efterfulgt af mappenavnet, dvs. "newdomain.dk/replace" i vores eksempel. Herefter vil man se et skærmbillede der svarer til dette:

Startbillede

Bemærk at WordPress-databaseoplysningerne automatisk er blevet hentet fra wp-config.php. Hvis scriptet af en eller anden grund ikke kan hente disse oplysninger automatisk kan man blot selv indtaste dem i felterne.

Herefter kan man skrive den tekst der skal erstattes i den øverste linje, ud for teksten "search/replace":

Søg og erstat

Til mere avancerede søg/erstat operationer kan man bruge regulære udtryk ("regex"), men i vores eksempel er det ikke nødvendigt.

En rigtig smart feature i den nye version af scriptet er muligheden for at lave et "dryrun", dvs. simulere søg/erstat-operationen inden man kører den for alvor:

Dryrun

Resultatet af simuleringen er en tabel der viser præcis hvilke ændringer der ville være blevet lavet, hvis det altså var et "live run":

Dryrun resultat

I kolonnen "Cells changed" kan man klikke på de enkelte links for at se hvilke felter der ville være blevet ændret (i vores eksempel flytter vi en helt frisk WordPress installation, og der er derfor kun ganske få ændringer).

Nu er vi klar til at gennemføre ændringerne, så vi kan klikke på "live run" for at rette direkte i databasen. Der er ikke nogen "undo" knap, så det er selvfølgelig vigtigt at man sikrer sig at man har en backup forinden.

Vi har ikke haft brug for det i dette tilfælde, men scriptet giver også mulighed for at begrænse søg/erstat funktionen til bestemte tabeller. Man har også mulighed for kun at lave søg/erstat i bestemte kolonner i de valgte tabeller.

Ryd op efter dig

Når man er færdig med at bruge search/replace scriptet er det meget vigtigt at huske at slette det igen, da alle der kan gætte URL'en ellers har frit spil til at lave ulykker i databasen. Det er ganske let at rydde op efter sig i den nye version, man skal blot klikke på "delete me" knappen:

Sletknap

Alternativt kan man blot selv slette den mappe man uploadede - bare man husker at gøre det.

Alt i alt et rigtig nyttigt værktøj når man arbejder med WordPress!