När det gäller att arbeta med WordPress-baserade projekt, är det förmodligen en av de mest frustrerande eller tråkiga aspekterna av implementering att faktiskt få databaser över dina miljöer att synkronisera med varandra.
Visst, det finns något att säga om att använda testdata i utveckling, användardata i staging och faktiska data i produktionen, men det finns ingen sådan sak som en silverkula, eller hur? Det betyder att ibland testdata kommer att fungera andra gånger, det kommer det inte.
Låt oss till exempel säga att du ärver ett projekt för vilket du måste dra ner en databas och börja börja arbeta med befintliga data. Eller låt oss säga att du måste migrera en hel webbplats eller applikation från en server till en annan.
I sådana fall hjälper testdata inte en hel del. I stället behöver du ett verktyg för det. Visst är WordPress Importer ett rättvist verktyg för grundläggande migreringar, och kör SQL-export och import är okej om du är bekväm med databasens framändar och arbetar med SQL själv.
Men hur är det med dem som är någonstans däremellan?
Sanningen är när det gäller att arbeta med WordPress-databasmigrationer, det är en blandad väska eftersom många av oss har kompetensnivåer som varierar beroende på vilken del av stacken vi arbetar med mest.
Med det menar jag:
Det här är inte att säga att det inte finns full stack-utvecklare. Självklart finns det; dock är inte alla i den positionen.
Så när det gäller att arbeta med migrerade WordPress-databaser, har vissa en mycket svårare tid än andra. Alternativt, trots sin komfortnivå med SQL, kan vissa leta efter ett verktyg för att enkelt göra hela processen enklare.
I denna serie ska vi titta på ett verktyg som gör det bara det, men innan vi gör det, låt oss ha en snabb primer på WordPress-databasen för att se till att vi är alla på samma sida.
När det gäller att diskutera WordPress-databasen kan en hel serie artiklar skrivas om varje tabell, varje kolumn, schemat, hur man skriver optimala frågor och så vidare.
Detta är inte serien för det.
I stället ska vi göra två saker i den här artikeln:
I slutändan bör detta hjälpa till att förklara eller demystifiera några av det underliggande arbetet för dem som spenderar mer tid i fronten och det kan hjälpa dem som spenderar mer tid på applikationslaget som arbetar med WordPress API, förstå vilka funktioner som matchar vilket bord (vilket kan leda till att skriva bättre kod).
Generellt sett tror jag att majoriteten av Wptuts + -läsarna vet vad en databas är.
Direkt från Wikipedia:
En databas är en organiserad samling av data. Uppgifterna är vanligtvis organiserade för att modellera relevanta aspekter av verkligheten (till exempel tillgängligheten av rum på hotell), på ett sätt som stöder processer som kräver denna information (till exempel att hitta hotell med lediga platser).
Det är en rättvis definition, men jag tror inte att det gör ett så bra jobb att illustrera WordPress-databasen eller liknande webbapplikationer - det är lite för generellt. Så här, låt oss skapa vår egen arbetsdefinition som vi kan använda i resten av serien.
Låt oss försöka detta:
En databas består av minst en tabell. En tabell består av rader och kolumner som var och en lagrar unika bitar av information. Varje rad heter en rekord. Flera tabeller kan finnas i en databas, och ibland kan tabeller relateras till varandra.
Kanske den mest förvirrande delen av det jag har delat ovan är att tabeller kan relateras till varandra. Vi kommer att se den här ideen före artikelns slut - men först, låt oss diskutera WordPress-databasen.
Kort sagt består WordPress-databasen av elva tabeller (om du inte använder Multisite, men det ligger utanför ramen för denna serie).
Nu har varje tabell också en egen uppsättning kolumner som representerar en mängd information som lagras i tabellen. Till exempel, wp_posts
bordet har en kolumn kallad POST_CONTENT
som representerar det faktiska innehållet som lagras i ett inlägg.
Tabellerna och deras beskrivningar är följande:
Och det är allt som finns i WordPress-databasen. Det är relativt enkelt och enkelt, rätt?
Inlägg sparas i inläggstabellen, Kommentarer i kommentarfältet, Användare i användartabellen och så vidare. Visst, det finns några subtila nyanser (som det faktum att sidor lagras i tabellen Inlägg); Det är emellertid ett relativt okomplicerat schema att följa.
Det är en bra sak.
Kom också ihåg hur vi tidigare nämnde att vissa tabeller kan referera till varandra? Ett bra exempel på detta skulle vara tabellen Kommentarer och tabellen Inlägg. Eftersom kommentarer lämnas på ett specifikt inlägg behöver en kommentar veta vilket post-ID det är förknippat med så att när ett inlägg laddas kan kommentarer som är relaterade till det inläggets ID hämtas.
Hur som helst, det här är mer detaljerat än att vi dyker in i den här serien, men det är förhoppningsvis tillräckligt att ge dig en idé. Om du är intresserad av mer teknisk information, så är förhållandet mellan tabellerna, kolumnerna och mycket mer, så krypterar du WordPress Codex-artikeln på databasbeskrivningen.
Vid denna tidpunkt har vi täckt allt vi behöver täcka i vår primer i WordPress-databasen. Förhoppningsvis hjälper det här att dra tillbaka gardinen för vad som händer under käften när du sparar information i WordPress, men nu när vi har täckt det här är det dags att titta på ett verktyg som gör att arbetet med data migreringar är extremt lätt.
Och med tanke på att vi nu har en förståelse för hur databasen är organiserad, borde vi också ha en förståelse för hur migreringar fungerar.