Esportare solo pagine e post con dump mysql
Come esportare solo le pagine e i post utilizzando l'approccio mysql
da database a database? Più precisamente:
- quali tabelle selezionare per il dump (suppongo
wp-posts
ewp-post-meta
) - è sicuro esportare solo alcune tabelle (quelle che contengono i dati di pagine/post) e non tutte
(Il mio obiettivo è sincronizzare lo sviluppo con il sito di produzione e, poiché il sito prod ha molte funzionalità aggiunte post festum, la mia scelta è esportare solo pagine e post. Lo strumento di esportazione integrato in WordPress combinato con i plugin di importazione disponibili non mi ha dato risultati utili.)

Il contenuto include l'utente autore e i commenti (e probabilmente altro). Esportare solo una parte del database come metodo di esportazione/importazione non sembra un'idea molto solida.
I database sono relativamente piccoli, e non c'è quasi alcun motivo per non esportare/importare l'intero database invece di cercare soluzioni alternative.

Grazie per la risposta. Ma il problema è che non oso sovrascrivere, diciamo, i dati di produzione di plugin di sicurezza o altri, password di altri utenti e così via. Questo è il motivo per cui cerco una soluzione che riguardi solo i dati di pagine e articoli.

Generalmente questa non è una buona idea. Vedi questo diagramma del database di WordPress. Devi considerare:
- post che hanno categorie o tag (termini), le loro relazioni, metadati dei termini e tassonomie
- post che hanno autori (utenti)
- post che hanno commenti
- elementi che in realtà sono post e che potresti non realizzare siano post (ad es. quasi tutto in WordPress è un post - molti plugin memorizzano i loro dati come post, alcuni esempi sono Contact Form 7, gruppi di campi di Advanced Custom Fields e molti altri)
- qualsiasi altra cosa che potrebbe essere stata modificata nella tua installazione di sviluppo e che non è sincronizzata con il server live (ad es. sei sicuro che nessun record sia cambiato nella tabella delle opzioni?)
In generale, dovresti avere una copia "live" del tuo database e qualsiasi modifica apportata al database di sviluppo dovrebbe essere solo a scopo di test, prima di ripetere quelle modifiche sul server live. Fare diversamente rischia di portare a una lunga e laboriosa ricerca attraverso tutti i tuoi dati per garantirne l'integrità. Unire due database non è mai piacevole.
Senza conoscere tutti i dettagli della tua situazione, alcune opzioni che potresti avere sono:
- Importazione/esportazione di WordPress (che hai detto di aver provato, ma non è chiaro perché non abbia funzionato)
- Re-inserire manualmente i post che ti servono (il che potrebbe o meno essere proibitivo a seconda del loro numero)
- Aggiungere i post a una tabella nuova, poi scrivere uno script per scorrere i record ed eseguire
wp_insert_post()
su ciascuno - Prendere un mysqldump di ogni database e fare un diff per determinare quanto è realmente cambiato nel sito live, e decidere se puoi semplicemente sovrascrivere il database e impostare manualmente alcune opzioni
Potrebbero esserci anche altre soluzioni, e la migliore dipenderà dai dettagli della tua situazione. Con le informazioni che abbiamo finora, probabilmente propenderei per l'opzione dello script menzionata sopra.
MODIFICA: Da quando questa risposta è stata scritta originariamente, è stato rilasciato Mergebot. Non l'ho usato quindi non posso garantire, ma sembra promettente e l'autore ha una storia di plugin di qualità.

Puoi utilizzare lo strumento di Importazione/Esportazione di WordPress per esportare pagine e articoli dal tuo sito di sviluppo al sito di produzione. Tieni presente che devi aggiornare manualmente tutti gli URL nel sito di produzione dopo l'importazione (ad esempio cambiare dev.example.com in example.com).
Copiare l'intero database è rischioso se il tuo sito di produzione contiene registrazioni di login e ordini dei clienti. Sto cercando suggerimenti su come utilizzare mysqldump per sincronizzare i siti di sviluppo e produzione senza alterare i record degli ordini dei clienti nel sito di produzione.
