veebimigratsioon wordpressi peale

Veebi üleviimine olemasoleva sisuhalduse pealt WordPressi peale ei pea olema meeletu käsitöö – pigem võiks kogu sisu ühe hooga üle tuua. Ja kuivõrd just sai kolitud senine Manila-põhine www.tehnokratt.net (v.a foorumiose) üle siia WordPressi-põhise tehnokratt.net’i peale on värskelt meeles kõik see mis seotud veebimigratsiooniga.

Executive brief – kõik alljärgnev on kole raju tehnospiik, aga kui Sa oled mõelnud tõsta oma senise veebi WordPressi peale siis ma heameelega aitan ja rakendan kõike kolekeerulist :-) Kui minu abi ei sobi, siis lisa vähemalt protsessikirjeldus hankele/töökäsule – et vot nii tuleb teha või veel paremini…

Minu meetod on selline:

  • genereerin algse veebi andmebaasist WXR ehk WordPress eXtended RSSi (sama formaati tekitab WordPress ise ekspordi käigus); kolhoosi puhul häkkisin ümber ühe varasema MovableType jaoks tekstifaili eksportinud skripti, aga kui sisu SQL-baasis siis kasutan SQL2RSS skripti koos mõningaste täienduste (utf8 tugi, WP-spetsiifiline kuupäevaformaat ja veel nipet-näpet) ja WXR-spetsiifiliste formaadifailidega – ja mis WXRi ei mahu nt erinevates keeltes lehtede seosed läheb kaasa metadata-väljadena
  • saadud tekstifail on hea võimalus teha esimest normaliseerimist – peamiselt saidisiseste linkide osas, mille puhul ?id=123 enam ei toimi – aga kuna artiklite numeratsioon tuleb kenasti üle siis võib need lihtsalt ?page_id=123’ks ümber asendada (n+1 lisaparameetri eemaldamine eeldab regexi-võimelise searchiga tekstieditori, minul TextWrangler saab täitsa hakkama :-)
  • WXR WordPressi sisse – ja kui kõik plaanipäraselt kulges peaks asi juba täitsa veebi moodi välja nägema… kuigi reaalses elus on kindlasti vaja veel midagi putitada ja sageli on seda mõistlik teha mõnes eelmises etapis (miska pole mõtet esimesel katsel normaliseerimist liiga tõsiselt võtta, äkki tuleb naasta andmebaasitõmmise juurde)
  • vahel juhtub, et algses süsteemis on eraldi numeratsioonid uudiste ja artiklite jaoks – kui nii, siis panen WXRi metadatana kaasa algse numeratsiooni, saan WordPressi baasist teada vanade ja uute numbrite vastavuse ning tekitan sellest Exceli kaasabil kaks tekstifaili – SQL käsud mille saab lasta peale postituste sisule eesmärgiga panna toimima varasemad saidisisesed uudistelingid ehk ?uudis=123 -> ?p=123 ja ning .htaccess jaoks rewrite’d mis tegelevad väliste vana-uudise linkidega
  • kui on tegu mitme keelega, siis kasutan WordPressis WPML.org pluginat ja eeldusel, et olen taibanud keelte-seose metadatana kaasa panna on umbes 1 lause SQLi mis postitused kenasti kokku seob
  • piltide ja failide puhul on lihtsalt ümberliigutamine lihtne, vajadusel tulnuks WXRis muuta kataloogirada ning tekitada rida .htaccessi mis välislingid ümber suunab – aga juhul kui nende nimetamises peaks esinema olulist saasta (täpitähed-tühikud mis URLis kenad ei ole, sama fail mitu korda jne) siis tuleb jällegi appi Excel, milles teen ümbernimetamise ja genereerin lisaks SQL ja .htaccess ridadele ka batchfaili ümbernimetamiseks – ning saadud ilusate nimedega failid lähevad WordPressi meediana üles
  • kui algsetes postitustes on sees kõvasti tarbetut HTML-märgendust (Word jms), siis tegelen sellega kas WXRis (regex oskus abiks) või kasutan Tidy Up pluginat (üldiselt toimib, aga kohati annab alla – ei ole olnud aega debugeerida)
  • lisaks panen uuele veebile peale Redirection’i mille 404-logi näitab ära sisenevad URLid mis mingil põhjusel ikkagi ei toimi – ning kohendan .htaccess või lisan sealsamas kiire suunamise, et lgp külastaja tulevikus 404 asemel midagi sisukamat näeks. ühtlasi toimib see kvaliteedikontrollina.

Üldjoontes selline mõnus andmete masseerimise ülesanne, natuke automaagiline ja natuke tüütu. Eriti tüütu on esimest korda kõike avastada ja käima jooksta. Sest olgu öeldud, et WXR parser on tiba pirtsakas ja vahel kulub aega saamaks aru, et teise postituse mitte-importimine on otseses seoses ühe täiesti normaalse väljaga RSS-kanali päises… või et threaded comments’i toimimise lõpetab see, kui esimese kommentaari parent’iks on sattunud postitus mida kommenteeritakse.

Postitatud rubriiki wordpress märksõnaga , , , , , . Talleta püsiviide. Kommenteerimine ja trackback-viidete lisamine ei ole lubatud.

7 Kommentaarid

  1. Lisatud 20. okt. 2010 kell 06:52 | Püsiviide

    Mul seda kolikraami Sinu juures Kolhoosis üksjagu on, kusjuures osa nendest hästi mahukad saidid. Punane Viinakuu sai paar aastat tagasi mingi poolmanuaalse meetodi abil tõstetud. Väike sait, kuid aega läks selleks tohutult.Pean asja lähemalt vaatama. Häda aga selles, et aega on vähe ja Exceliga olen küll õnnetu.

    • Lisatud 20. okt. 2010 kell 07:42 | Püsiviide

      ütleme nii, et kui tõstmise puhul pole tegu korporatiivse veebiga või millegagi mida on väljast ohtralt lingitud – siis võib need keerukamad etapid ka ära jätta :-)

      lisaks on kolhoosis kogu numeratsioon kenasti ühes jadas ning tõstes selle üle tühja WordPressi jäävad numbrid kehtima – on vaid vaja teha WXR-failis asendus /stories/storyreader$ -> /?page_id= ja /discuss/msgreader$ -> /?p= (ja koristada msgreaderi tagant ära igast mode=topic jms jura)

      minul oli siin vaja tuua kolhoos olemasolevasse WordPressi – mis lõppes nii, et tegin uue WordPressi ning tõin sinna järgemööda sisse vana ja uue sisu.

  2. Asdgfa
    Lisatud 22. okt. 2010 kell 06:39 | Püsiviide

    selle redirect plugina asemele võib kasutada hoopis seda:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

    niiviisi piisab ainult ühest failist ja see meetod toimib vähemalt minu puhul laitmatult.

    • Lisatud 22. okt. 2010 kell 07:21 | Püsiviide

      see toimib juhul, kui kolid lihtsalt ühelt domeenilt teisele – kui muutub sisuhaldusplatvorm või teed mingil põhjusel vajalikke ümberkorraldusi on sebimist oluliselt rohkem… lisaks on hea, kui kolimise järel saab mugavalt vaadata mis URLid annavad 404 (kui ei ole mugav siis ei viitsi ka keegi vaadata ja neid erandlikke suunamisi lisada)

      aga üldiselt mulle kah meeldib ilma pluginateta läbi ajada kui vähegi võimalik :-)

      • Lisatud 23. okt. 2010 kell 21:10 | Püsiviide

        Redirectioni juures on logid ka minu arvates tähtsamaid omadusi, muuhulgas on nt päris huvitav 404 logist jälgida, kuidas “uksi logistamas” käiakse, st proovitakse erinevaid teadaolevaid WP turvaauke läbi. Valdavalt on need seotud kehvasti kirjutet pluginatega, millistest siis tekib nii teatav ülevaade. Siit aga järeldame, et tõesti tasub pluginaid hoolikalt valida.

        Petsile vb pakub huvi info, et Redirectioni autor John Godley, kelle kraami olen varemgi kiitnud, on tänavu suvest Automatticu tiimi liige ning osaleb seega nüüd juba WP core’i programmeerimisel.

        • Lisatud 23. okt. 2010 kell 21:32 | Püsiviide

          mul on tavaks valida raamistikke/pluginaid, mille autorid Automatticusse tööle võetakse :-)

          paraku paistab Johnil niipalju tööd olevat, et pluginate bugidega peavad tegelema kasutajad ise :-(

          (olen just võtnud pulkadeks TidyUp’i, probleem arvatavasti kasutatud Tidy bugisuses…)

          • Lisatud 23. okt. 2010 kell 21:50 | Püsiviide

            Nii see paraku on, aga see vist ongi vabavaramaailma võlu ja valu. Oleme
            isegi tema asju pidanud siit-sealt kohendama (TidyUp’i ei ole
            kasutanud), aga sama kehtib ka teiste autorite pluginate kohta. John on
            oma suuremate tükkide juures kasutanud mõnusasti MVC mustrit, mis
            tähendab, et need on vajaduse tekkides ka suhteliselt hõlpsasti
            laiendatavad.