Local WP development mirror to Staging Server

Salutare !

Caut de ceva timp o solutie ok la problema mea, dar nu am gasit pe nicaieri, asa ca ma voi plange aici, poate are cineva o rezolvare :slight_smile:

Pe scurt: implementez site-uri pe wp, iar firma la care lucrez cere in mod explicit development direct pe server (mai intra clientul din cand in cand sa vada progresul). Problema este ca serverele nu-s in tara, asa ca pentru fiecare refresh pierd secunde bune. In decursul unei zile intregi se pierd cateva minute doar pe refresh-uri.

Pana acum ceva timp foloseam asta: SFTP - Visual Studio Marketplace - doar ca nu se mai ocupa nimeni de ea, asa ca a inceput sa dea crash-uri. Deci o scot din calcul.

Acum apelez la voi: stiti vreo solutie care sa imi oglindeasca local->staging? Nu neaparat realtime, poate ceva cron la 10-20-30 min.

Ceva sa poata face search/replace in DB, sa inlocuiasca tot ce tine de local (url-uri, titluri samd) si sa modifice cu ce am nevoie pentru staging.

Sper ca m-am facut inteles.

Multumesc :smiley:

Poți face asta cu un cron și wp-cli (ai nevoie de wp db dump și wp search-replace).

Întrebarea este alta însă: chiar ai nevoie de sincronizarea asta real-time a bazei de date? Din experiență îți pot spune că exceptând situația în care ai vreun bug foarte specific, poți lucra relaxat cu datele out-of-sync.

Distanța față de server este o micro-optimizare din punctul meu de vedere; diferența de latențe dintre un server din RO vs unul din US este neglijabilă în dev (e.g. 5ms pe un server în Ro, 40ms pe un server în UK, 100ms pe un server din US). Dacă pierzi secunde bune aș zice că problema e în altă parte, ori la cod ori la hosting (dar nu la locația serverului)

1 Like

Ai incercat cu rsync? Eu am un file watcher in phpstorm care trigaruieste rsync la fiecare file change. Spre deosebire de sftp, rsync uploadeaza fisierul doar daca sunt diferente.

Bonus points: poti sa adaugi ControlMaster si ControlPath in sshconfig-ul tau, faci o conxiune ssh la server long lasting. Toate conexiunile care le faci in paralel catre server vor folosi acea prima conexiune. Ar trebui sa fie un pic mai fast ca treci peste pasul de connect/auth la fiecare file change. :wink:

Cat despre db, dunno, use the same db for both envs?

2 Likes

Uite, te poți inspira de aici pentru a scrie un script custom pentru sync:

1 Like