Volevo estrarre il database dal mio sito Web di wordpress di produzione in una copia di sviluppo offline del mio computer desktop in modo da poter modificare il sito e testarlo con un set completo di del contenuto del blog e della cronologia esistenti.
Ciò si è rivelato problematico, poiché non è stato possibile eseguire semplicemente un backup offline del database e importarlo nel database di sviluppo locale.
Il superamento di questi problemi nello spostamento dei dati dalla produzione al database di sviluppo può probabilmente essere utilizzato anche per l'altro modo, quindi penso che si possano semplicemente utilizzare queste linee guida per quello che si vuole fare, basta iniziare con dev i dati e spostarli a prod.
I problemi qui sono stati:
- le designazioni permalink per le post del blog sono tutti memorizzati nel database come sarebbero per la versione online , ma i miei offline copia non è al indirizzo di dominio, invece si trova nella directory localhost. Dunque quando lancio il sito localmente, sebbene la formattazione css e le immagini siano tutte a posto (i collegamenti dell'immagine sono relativi), i post attuali del blog non vengono visualizzati.
- molti dei link in tutto il link sito di nuovo fuori a internet, quindi se si cerca di accedere a archivi, o commenti, o categorie, o dei principali messaggi, si spediti fuori al Internet invece di rimanere nel database sul computer locale.
Per assicurarmi che stavo facendo bene, ho scaricato l'installazione wordpress che avevo sul mio computer locale e riavviato da zero.
Una volta ho avuto un pulito, nuovo wordpress installare e nuovo di zecca di default appena creata database locale per questo, ho aperto il database in phpMyAdmin e ha preso uno sguardo ai wp_posts
tavolo.All'interno di questo, ogni record (in altre parole, ogni post) ha una colonna intitolata "guid", che mostra la posizione di quel post. Ad esempio, il primo in una nuova, di default
installare contiene questo valore "guid":
http://localhost/wordpress/?p=1
Se si guarda nella tabella wp_posts della versione on-line, si vedrà invece in questa posizione l'URL del tuo sito online.
Non è possibile importare le tabelle all'ingrosso nell'installazione locale, perché si importano tutti questi riferimenti esterni. Renderà la tua versione locale impossibile da navigare localmente.
Quindi, ho creato una copia di backup del database del mio sito online e l'ho salvata localmente come file .sql. Ho quindi aperto quel file in un editor di testo (ho usato Notepad ++, un grande software gratuito, ma potevi usare qualsiasi editor di testo). Le cose che bisogno di guardare fuori per:
- Per qualsiasi motivo, le tabelle sul mio sito online non sono solo, ad esempio, "wp_posts" - sono "wp_something_posts" ... ci sono alcune lettere extra in là nei nomi delle tabelle .
- Qualsiasi riferimento a http: // ... che contengono il mio url in linea invece di localhost/wordpress
di mantenerlo semplice diciamo solo fanno solo i post. Nella copia di backup del file .sql del tuo database online, trova l'inizio della tabella wp_posts. Assomiglierà a questo:
--
-- Table structure for table `wp_posts`
--
DROP TABLE IF EXISTS `wp_posts`;
CREATE TABLE `wp_posts` (
... e così via. Evidenzia tutto quanto sopra fino a poco sotto il commento che segna l'inizio del database nella parte superiore del file (dirà - Database: "il nome del tuo database") ed eliminalo. Poi vai alla fine della tua tabella wp_posts, e cancella tutto dopo di allora fino alla fine del file. Ora il tuo file contiene solo i tuoi post e nient'altro.
Salvare questo come documento separato. Chiamalo posts.sql o qualcosa del genere.
Ora, in questo file posts.sql, è necessario eseguire due azioni Trova/Sostituisci.
- trovare ogni istanza del nome le wp_something_posts tavolo e sostituirlo con wp_posts. È sufficiente eseguire se la copia di backup del database online non corrisponde a e corrisponde all'installazione locale pulita come come i nomi delle tabelle. Si desidera qualunque sia il nome della tabella in questo file per corrispondere a quello che il proprio database wordpress installato in locale ha come nome tabella . Se non fai corrispondere questi nomi allo , sei pronto a importare i post in una nuova tabella con nomi diversi, , che non ti servirà a tutti allo .
- Trova ogni istanza di http: // ... (sostituire l'elipsis con il vostro URL) e sostituirlo con http://localhost/wordpress (o qualunque sia l'url locale per la versione dev del sito è)
Ora salvare di nuovo il file, per assicurarsi che si' abbiamo questi cambiamenti impostati.
Ora che hai fatto questo, utilizzare phpMyAdmin per entrare nel database di WordPress sul computer locale, selezionare la scheda "import" e passare il selettore al file di posts.sql hai appena fatto, e quindi importare esso. Questo trarrà tutti i dati in quel file nella tua tabella wp_posts locale.
Al termine, sfoglia il tuo sito wordpress locale. Vedrai tutti i tuoi post lì dentro ora. Evviva!
Potrebbe essere necessario fare qualcosa di simile per un paio di altri tavoli se si desidera portare nei vostri commenti, tag, categorie e pagine statiche che hai creato, ecc
Mi rendo conto che questo è un processo contorto . Probabilmente c'è uno strumento là fuori da qualche parte che rende più facile questa attività, e se qualcuno ne conosce uno mi piacerebbe scoprirlo. Se qualcuno conosce un modo migliore di farlo manualmente rispetto a quello che ho descritto, mi piacerebbe saperlo anche io!
Fino ad allora, questo è il modo in cui ho capito come farlo. Spero che ti aiuti ad andare nella giusta direzione.