Mass Find & Zamijeni WordPress baze podataka - jednostavan način
Postoji nekoliko prilika u kojima moramo promijenite URL-ove u našoj bazi podataka WordPress web-mjesta. Na primjer, to trebamo učiniti nakon migracije WordPress baze podataka s jednog mjesta, npr. od http://acme.com
udaljenom mjestu proizvodnje, na http://acme.dev
web-mjesta lokalnog razvoja na našem računalu.
WordPress.org sadrži veliki broj dodataka, kao što su WP DBManager i WP Migrate DB, a tu su i brojni alati treće strane koji vam omogućuju da uvesti bazu podataka lako. Lukav dio je to promijeniti svaku instancu URL-a unutar baze podataka.
Nakon migracije baze podataka, URL-ovi unutar nje još uvijek ukazuju na staru stranicu, u ovom slučaju acme.com
. Stari URL možete pronaći u wp_options
tablica, postavljena kao vrijednost SITEURL
i Dom
opcija, a vjerojatno je i ugrađen u nekoliko drugih redaka i tablica u bazi podataka. Ti stari URL-ovi mogu spriječiti pravilno funkcioniranje vaše web-lokacije, tako da je potrebno promijenite ih u novi URL, u našem primjeru acme.dev
.
U ovom trenutku, pristup našem razvojnom mjestu na adresi acme.dev
će jednostavno voditi na praznu stranicu.
Kako ćemo promijeniti sve te URL-ove u bazi podataka?
Pokretanje SQL upita
Obično bi ljudi pokrenuli sljedeći SQL upit koji zamjenjuje vrijednosti SITEURL
i Dom
u opcijama wp_options
stol.
UPDATE wp_options SET option_value = zamijeni (option_value, 'http://acme.com', 'http://acme.dev') GDJE option_name = 'home' ILI option_name = 'siteurl';
Nakon toga, oni koriste drugi SQL upit za zamjenu svih URL pojavljivanja u wp_posts
tablice, naime u POST_CONTENT
stupca svakog retka.
UPDATE wp_posts SET post_content = zamijeni (post_content, 'http://acme.com', 'http://acme.dev');
Pokretanje ovih upita djelotvorno je rješenje, ali u isto vrijeme nije prikladno. Moglo bi biti čak i nervozno, budući da se baza podataka može preokrenuti zbog jednostavnog nadzora u upitu.
Utjecati na WP-CLI
Drugi put koji možemo učiniti, a za koji sam otkrio da je zgodnija alternativa, jest iskorištavanjem WP-CLI naredbenog retka. To znači da ćete morati instalirati WP-CLI.
Pod pretpostavkom da imate instaliran WP-CLI i imate wp
naredba dostupna kao pseudonim, idite do direktorija gdje se nalaze vaše WordPress stranice.
Zatim pokrenite sljedeću naredbu:
wp search-zamijeni "http://acme.com" http://acme.dev
Prvi parametar, 'Http://acme.com'
, je stari unos koji se zamjenjuje drugim, 'Http://acme.dev'
.
Redak za naredbe će pretraživati sve tablice unutar baze podataka, ne samo POST_CONTENT
stupcu i wp_options
stol, i zamijenite svaku instancu unosa prolazi kroz parametre naredbe.
Kao što možete vidjeti na slici iznad, napravljeno je ukupno 225 zamjena. I učinili smo to kroz jednostavnu zapovjednu liniju.
Mislim da je vrijedno spomenuti da možemo koristiti wp pretraživanje-zamjena
naredbu, ne samo za zamjenu URL-ova, nego i za bilo koji dio vrijednost pohranjene u bazi podataka. Također možemo ograničiti operaciju na određenu tablicu prosljeđivanjem naziva tablice kao četvrtog parametra, kako slijedi:
wp search-replace '.jpg ".webp" wp_posts
Pokretanjem gornje naredbe, pretraživat će se samo wp_posts
, tablicu u kojoj se pohranjuju naši sadržaji - postovi, stranice itd. - i zamijenite proširenje slike iz .jpg
do .webp
.
WP-CLI čini zapetljanu SQL operaciju intuitivnijom i možete raditi s njom na prikladniji način. Ako želite fino podesiti svoje naredbe, pogledajte dokumentaciju WP-CLI, koja vam daje popis opcija za obavljanje naprednijeg rada s wp pretraživanje-zamjena
naredba.