Exportare doar pagini și articole cu dump mysql
Cum să export doar paginile și articolele folosind mysql
prin abordarea bază de date către bază de date? Mai precis:
- ce tabele ar trebui selectate pentru dump (presupun
wp-posts
șiwp-post-meta
) - este sigur să exportezi doar unele dintre tabele (cele care conțin date despre pagini/articole) și nu toate
(Scopul meu este să sincronizez mediul de dezvoltare cu site-ul de producție, iar pentru că site-ul de producție are multe funcționalități adăugate post festum, alegerea mea este să export doar paginile și articolele. Unealta de export integrată în Wordpress combinată cu plugin-urile de import disponibile nu mi-au oferit nimic util.)

Conținutul include utilizatorul autor și comentariile (și probabil mai multe). Exportarea doar a unei părți din baza de date ca metodă de export/import nu pare o idee foarte solidă.
Bazele de date sunt relativ mici și nu există aproape niciun motiv pentru a nu exporta/importa întreaga bază de date în loc să încerci să faci modificări ad-hoc.

Mulțumesc pentru răspuns. Dar problema este că nu îndrăznesc să suprascriu, să zicem, datele de producție ale plugin-urilor de securitate sau ale altor plugin-uri, parolele altor utilizatori și așa mai departe. Acesta este motivul pentru care caut o soluție care să afecteze doar datele paginilor și articolelor.

Aceasta nu este în general o idee bună. Consultă această diagramă a bazei de date WordPress. Trebuie să iei în considerare:
- articolele care au categorii sau etichete (termeni), relațiile lor, meta datele termenilor și taxonomiile
- articolele care au autori (utilizatori)
- articolele care au comentarii
- elementele care sunt de fapt articole, dar pe care s-ar putea să nu le realizezi că sunt articole (de ex. aproape totul în WordPress este un articol - multe plugin-uri își stochează datele ca articole, câteva exemple sunt Contact Form 7, grupurile de câmpuri Advanced Custom Fields și multe altele)
- orice altceva care ar fi putut fi modificat în instalarea ta de dezvoltare și care nu este sincronizat cu serverul live (de ex. ești sigur că nu s-au schimbat înregistrări în tabelul de opțiuni?)
În general, ar trebui să ai o copie "live" a bazei de date și orice modificări pe care le faci la baza de date de dezvoltare ar trebui să fie doar în scop de testare, înainte de a repeta acele modificări pe serverul live. A face altceva riscă o căutare lungă și îndelungată prin toate datele tale pentru a te asigura de integritatea acestora. Combinarea a două baze de date nu este niciodată distractivă.
Fără a cunoaște toate detaliile situației tale, câteva opțiuni pe care le-ai putea avea ar putea fi:
- Import/export WordPress (pe care ai spus că l-ai încercat, dar nu este clar de ce nu a funcționat)
- Inserarea manuală a articolelor de care ai nevoie (care poate sau nu să fie prohibitivă în funcție de numărul lor)
- Adăugarea articolelor într-un tabel nou, apoi scrierea unui script pentru a parcurge înregistrările și a rula
wp_insert_post()
pentru fiecare - Realizarea unui mysqldump pentru fiecare bază de date și efectuarea unei diferențe pentru a determina cât de mult s-a schimbat cu adevărat în site-ul live și a decide dacă poți pur și simplu să suprascrii baza de date și să setezi manual orice opțiuni
Pot exista și alte soluții, iar cea mai bună va depinde de detaliile situației tale. Cu informațiile pe care le avem până acum, probabil m-aș îndrepta spre opțiunea de scripting menționată mai sus.
EDIT: De când acest răspuns a fost scris inițial, Mergebot a fost lansat. Nu l-am folosit, așa că nu pot garanta pentru el, dar pare promițător, iar autorul are un istoric de producere a unor plugin-uri bune.

Puteți utiliza instrumentul WordPress de Import/Export pentru a exporta pagini și articole de pe site-ul de dezvoltare către site-ul de producție. Rețineți că va trebui să actualizați manual toate URL-urile pe site-ul de producție după import (de exemplu, să schimbați dev.example.com în example.com).
Copierea întregii baze de date este riscantă dacă site-ul de producție conține înregistrări de autentificare și comenzi ale clienților. Caut sugestii despre cum să folosesc mysqldump pentru a sincroniza site-ul de dezvoltare cu cel de producție fără a afecta înregistrările comenzilor clienților de pe site-ul de producție.
