Care este un flux de lucru mai bun pentru migrarea bazei de date?

11 dec. 2014, 11:16:43
Vizualizări: 226
Voturi: 1

Când lucrez la un site WordPress existent, de obicei fac o copie a întregului site și lucrez la nivel local. De mai mulți ani folosesc un script precum cel de mai după importarea bazei de date local.

UPDATE wp_options SET option_value = replace(option_value, 'http://clientsite.co.uk', 'http://local.wordpressdev') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = REPLACE (guid, 'http://clientsite.co.uk', 'http://local.wordpressdev');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://clientsite.co.uk', 'http://local.wordpressdev');    
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://clientsite.co.uk', 'http://local.wordpressdev');

Am văzut recomandări să nu modificăm guid-urile postărilor, dar metoda de mai sus a funcționat întotdeauna pentru mine și, din câte știu, nu a cauzat niciodată probleme.

Întrebarea mea este: această metodă de migrare este încă validă în WordPress 4? De asemenea, plugin-uri precum 'Search & Replace' sau unelte precum WP-CLI fac acest lucru mai bine?

0
Toate răspunsurile la întrebare 2
0

Folosesc asta pentru căutare și înlocuire în baze de date - https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Pur și simplu mut fișierele cu FTP, export și import baza de date și apoi rulez scriptul căutând vechea adresă URL și înlocuind cu noua adresă URL. Apoi resalvez structura legăturilor permanente și am terminat. Am mutat WordPress de mii de ori folosind această metodă.

Am vechiul script care este doar un singur fișier, nu sunt prea încântat de noua versiune, e un pic mai lentă și mai "proof-idiot" ceea ce de fapt nu-mi place.

11 dec. 2014 11:32:34
0

wp-cli are această funcționalitate încorporată. Dacă ai wp-cli instalat, din linia de comandă poți executa:

wp search-replace 'http://oldurl.com' 'http://newurl.localhost'

sau orice URL-uri folosești în mediul tău local, iar această comandă va actualiza baza de date a site-ului local, ținând cont de array-urile serializate (lucru pe care soluția din întrebarea inițială nu îl face).

Poți crea alias-uri în fișierul tău .bash_profile pentru a executa o serie de comenzi wp-cli care să creeze o bază de date, să reseteze o bază de date, să importe o bază de date, să facă search-replace într-o bază de date etc. Astfel, în final poți avea un singur alias pe care îl rulezi din linia de comandă și care face toată munca de importare a unei noi baze de date pentru site-ul tău.

10 feb. 2016 11:48:41