Migrarea bazei dvs. de date WordPress un primer de baze de date

Când vine vorba de a lucra cu proiectele bazate pe WordPress, este, probabil, unul dintre aspectele cele mai frustrante sau plictisitoare de implementare, de fapt, obținerea bazelor de date în mediile dvs. în sincronizare cu altele.

Sigur, este ceva de spus pentru folosirea datelor de testare în dezvoltare, a datelor utilizatorilor în stadializare și a datelor efective în producție, dar nu există un astfel de lucru ca un glonț de argint, nu-i așa? Asta inseamna ca uneori datele de testare vor funcționa; alteori, nu va.

De exemplu, să presupunem că moșteniți un proiect pentru care trebuie să trageți o bază de date și apoi să începeți să lucrați cu datele existente. Sau să presupunem că trebuie să migrați un întreg site sau o aplicație de la un server la altul.

În astfel de cazuri, datele de testare nu ajută la un întreg. În schimb, aveți nevoie de un instrument pentru asta. Și sigur, WordPress Importer este un instrument corect pentru migrațiile de bază și executarea exporturilor și importurilor SQL este în regulă dacă sunteți confortabil cu front-end-urile bazei de date și lucrați cu SQL.

Dar ce se întâmplă cu cei care sunt undeva între ele?


Efectuarea migrațiilor mai ușoare

Adevărul este că, atunci când este vorba de a lucra cu migrațiile bazei de date WordPress, este vorba de un sac mixt, deoarece mulți dintre noi au niveluri de calificare care variază în funcție de ce parte din stiva lucrăm cu cel mai mult.

Prin asta, vreau sa spun:

  • Cei care sunt mult mai confortabili cu lucrul la front-end vor fi probabil mai puțin familiarizați cu stratul de aplicație și / sau stratul bazei de date
  • Cei care sunt obișnuiți să lucreze cu stratul aplicației pot fi la fel de buni la capătul frontal, dar nu la baza de date (sau invers)
  • Cei care locuiesc în baza de date ar putea să nu se simtă confortabil cu straturile de mai sus

Acest lucru nu înseamnă că nu există dezvoltatori full of stacks. Evident, există; cu toate acestea, nu toți sunt în această poziție.

Deci, atunci când vine vorba de lucrul la baza de date WordPress care migrează, unii au mult mai greu decât alții. În mod alternativ, în ciuda nivelului de confort oferit de SQL, unii ar putea căuta un instrument simplu pentru a facilita procesul în întregime.

În această serie, vom examina un utilitar care face doar că, înainte de a face acest lucru, să avem un primer rapid pe baza de date WordPress pentru a vă asigura că suntem toți pe aceeași pagină.


Baza de date WordPress

Când vine vorba de discutarea bazei de date WordPress, ar putea fi scrise o serie întreagă de articole despre fiecare tabel, fiecare coloană, schema, cum să scrieți întrebări optime și așa mai departe.

Aceasta nu este seria pentru asta.

În schimb, vom face două lucruri în acest articol:

  1. Vom asigura că toți avem o înțelegere clară, conceptuală a ceea ce este o bază de date, așa că știm cum să o imaginăm în mintea noastră
  2. Vom arunca o privire la fiecare masa în baza de date WordPress pentru a înțelege ce fel de date deține fiecare tabelă

În cele din urmă, acest lucru ar trebui să ajute la explicarea sau la demisificarea unor activități care stau la baza celor care petrec mai mult timp pe front-end și ar putea ajuta pe cei care petrec mai mult timp la nivelul aplicației care lucrează cu API-ul WordPress să înțeleagă ce funcții se potrivesc cu tabelul (care poate duce în cele din urmă la scrierea unui cod mai bun).

Ce este o bază de date?

În general, cred că majoritatea cititorilor din Wptuts + știu ce este o bază de date.

Straight from Wikipedia:

O bază de date este o colecție organizată de date. Datele sunt de obicei organizate pentru a modela aspecte relevante ale realității (de exemplu, disponibilitatea camerelor în hoteluri), într-un mod care să susțină procesele care necesită aceste informații (de exemplu, găsirea unui hotel cu posturi vacante).

Aceasta este o definiție corectă, dar nu cred că face o treabă atât de bună de a ilustra baza de date WordPress sau aplicații web similare - este un pic prea general. Deci, de aici, să creăm o definiție de lucru proprie pe care o putem folosi în restul seriei.


Cum sunt reprezentate în mod normal bazele de date.

Să încercăm acest lucru:

O bază de date este formată din cel puțin un tabel. O tabelă este alcătuită din rânduri și coloane, dintre care fiecare stochează fragmente unice de informații. Fiecare rând este numit înregistrare. Sunt disponibile mai multe tabele într-o bază de date și uneori tabelele pot fi legate între ele.

Poate că cea mai confuză parte a ceea ce am împărtășit mai sus este că tabelele pot fi legate între ele. Vom revizui această idee înainte de sfârșitul articolului - dar, mai întâi, să discutăm baza de date WordPress.

Schema de baze de date WordPress

Pe scurt, baza de date WordPress constă din unsprezece tabele (cu excepția cazului în care utilizați Multisite, dar acest lucru se află în afara domeniului de aplicare al acestei serii).

Acum, fiecare tabel are și propriul set de coloane care reprezintă o varietate de informații stocate în tabel. De exemplu, wp_posts tabelul are o coloană numită POST_CONTENT care reprezintă conținutul real stocat într-o postare.

Tabelele și descrierile acestora sunt după cum urmează:

  • wp_users deține lista de utilizatori înregistrați cu instalarea WordPress. Acestea includ lucruri precum adresa de e-mail, parola, numele afișat și așa mai departe.
  • wp_usermeta conține informații referitoare la fiecare utilizator. Aici puteți stoca informații suplimentare despre fiecare utilizator.
  • wp_posts este locul în care sunt stocate toate informațiile postate. Adevărul este că nu contează dacă este vorba despre un post, o pagină sau un tip de post particularizat - toate informațiile precum titlul, conținutul și multe altele sunt stocate aici.
  • wp_postmeta este locul unde sunt stocate datele meta pentru fiecare post. Acest tabel vă permite să salvați și să preluați mai multe informații despre fiecare postare.
  • wp_comments sunt acolo unde sunt stocate comentariile pentru fiecare post (din nou, indiferent de tip).
  • wp_commentmeta cum ar fi celelalte tabele "meta", vă permite să stocați mai multe informații despre fiecare comentariu decât cele deja salvate în tabelul de comentarii.
  • wp_terms este locul unde sunt stocate categoriile și etichetele. Deoarece relația dintre postări, pagini, tipuri de postări personalizate, categorii și etichete poate deveni un pic mai complicată, există câteva mese suplimentare.
  • wp_term_taxonomy oferă o descriere a categoriei sau a etichetei (sau chiar linkul dacă le mai folosiți) în wp_terms masa.
  • wp_term_relationship stochează relațiile de la o anumită postare la categoria (sau categoriile) și / sau eticheta (sau etichetele).
  • wp_options sunt în cazul în care toate setările sunt păstrate - aceasta include pe cele care sunt livrate și sunt configurate cu WordPress și cele care sunt create folosind API-ul Setări.
  • wp_links este un tabel care există încă în baza de date WordPress, în ciuda faptului că nu mai există o opțiune UI pentru date. Dacă ați folosit vreodată această funcție, atunci sunteți familiarizat cu Link-urile și cu modul în care funcționează și acesta este tabelul în care sunt stocate.

Și asta este tot ce există în baza de date WordPress. E relativ simplă și directă, corectă?

Postările sunt păstrate în tabelul de posturi, Comentariile din tabelul cu comentarii, Utilizatorii din tabelul utilizatorilor și așa mai departe. Desigur, există câteva nuanțe subtile (cum ar fi faptul că paginile sunt stocate în tabelul Posts); cu toate acestea, este o schemă relativ necomplicată de urmat.

E un lucru bun.

De asemenea, amintiți-vă cum am menționat mai devreme că unele mese se pot referi unul la altul? Un bun exemplu ar fi tabelul de comentarii și tabelul Mesaje. Întrucât comentariile sunt lăsate pe o anumită postare, atunci un comentariu trebuie să știe cu ce ID de postare este asociat, astfel încât atunci când este încărcat un post, pot fi preluate comentarii legate de ID-ul acelei postări.


O bază de date și tabelele sale.

Oricum, acest lucru este mai detaliat decât vom fi scufundați în această serie, dar sperăm că este suficient să vă dau o idee. Dacă sunteți interesat de mai multe informații tehnice, relațiile dintre tabele, coloane și multe altele, atunci verificați cu exactitate articolul WordPress Codex pe baza descrierii bazei de date.


Concluzie

În acest moment, am acoperit tot ce trebuie să acoperim în baza noastră de date a bazei de date WordPress. Sperăm că acest lucru vă va ajuta să trageți înapoi cortina pentru ceea ce se întâmplă sub capota de fiecare dată când salvați informații în WordPress, dar acum că am acoperit acest lucru este timpul să analizăm un instrument care face lucrul cu migrarea datelor extrem de ușor.

Și având în vedere că acum avem o înțelegere a modului în care este organizată baza de date, ar trebui să avem și o înțelegere cu privire la modul în care funcționează migrațiile.

Cod