Migrace dat

upraveno 20. října 2012 v Všeobecná diskuze
Tato diskuze byla vytvořena spojením komentářů z Styluji, styluješ, stylujeme....
«13

Komentáře

  • Tak už mi ten script přenáší uživatele a kategorie. Možná ještě dnes začnu s diskuzema. A pak komentáře a to bude největší masakr :).
    Abych si to shrnul, tak potřebuju přenést uživatele, kategorie, diskuze, komentáře, soukromé zprávy. Na něco jsem zapomněl?
  • Noto bude pro forum asi vše, víc mě nenapadá. Akorát budeme muset pořešit v rámci komentářů takový drobnosti jako značení citací, značení spoilerů - ale to vlastně bude nejsnazší udělat přes styly, tak nic :-)
  • upraveno 8. září 2012
    no spoiler je tu nastavený dobře, class "spoiler", takže s tím se nebude muset nic dělat. A jinak jo, řešil bych to taky stylama.

    Jinak automaticky přeskakuju uživatele, kteří se ještě nikdy nepřihlásili, nebo myslíš, že je tam mám nechat?
  • přeskoč. Drupal byl v tomhle děravej.
  • důležitý bude taky svázat ty diskuze s články.

    Příkladem budiž článek http://if.ischiam.cz/pisen-ledu-a-ohne/tetfdsghf/ a diskuze http://if.ischiam.cz/forum/discussion/27/testovaci-prispevek-ice-fire

    Jak tak koukám, klíčem je GDN_Discussion a ForeignID - ale je to jen na první pohled...
  • No popravdě nevím, jak tohle udělám, protože na locale jednak nemám wordpress. Další problém je v tom, že já v podstatě beru csv file a ten přeformátuju pro vanillu, výsledný soubor vybereš pro import v Dashboard -> Import. Takto nějak vypadá ten výstup co dostanu:
    Vanilla Export: 1.6.4, Source: Drupal 7, HashMethod: Vanilla

    Table: User
    UserID,Name,Password,Email,ShowEmail,DateLastActive,DateInserted,HourOffset,Score,Banned,CountDiscussions,CountComments
    72,"heavy_head","","hosekst@seznam.cz",0,"2012-09-08 00:00:00","2006-10-29 00:00:00",0,0,0,0,0
    6,"Rasberne","","otevrelj@seznam.cz",0,"2011-07-24 00:00:00","2006-10-28 00:00:00",0,0,0,0,0
    10,"Tyna","","tobbi@seznam.cz",0,"2012-09-01 00:00:00","2007-10-20 00:00:00",0,0,0,0,0
    11,"Cirdan","","cirdan@email.cz",0,"2012-07-22 00:00:00","2007-10-20 00:00:00",0,0,0,0,0
    15,"sarven","","kurek@mccann.sk",0,"2012-09-07 00:00:00","2006-10-30 00:00:00",0,0,0,0,0
    18,"rufo","","kucrufo@seznam.cz",0,"2011-04-05 00:00:00","2006-10-30 00:00:00",0,0,0,0,0
    19,"MIl","","mil.rutar@email.cz",0,"2012-09-06 00:00:00","2006-12-13 00:00:00",0,0,0,0,0
    1258,"Chmur","","lysican@seznam.cz",0,"2012-09-06 00:00:00","2006-11-08 00:00:00",0,0,0,0,0
    21,"duny","","duny08@gmail.com",0,"2012-08-30 00:00:00","2006-12-13 00:00:00",0,0,0,0,0
    22,"Léto","","jiri.jelinek87@seznam.cz",0,"2012-06-10 00:00:00","2006-12-13 00:00:00",0,0,0,0,0
    31,"bedynka","","bedynka@atlas.cz",0,"2012-06-27 00:00:00","2007-06-25 00:00:00",0,0,0,0,0
    35,"Lobo","","lobo1978@gmail.com",0,"2012-08-16 00:00:00","2007-06-25 00:00:00",0,0,0,0,0
    44,"flanker.27","","flanker.27@seznam.cz",0,"2012-09-07 00:00:00","2007-10-17 00:00:00",0,0,0,0,0
    45,"knedle","","knedle@3tecky.cz",0,"2012-06-19 00:00:00","2007-10-17 00:00:00",0,0,0,0,0
    ...
    ...
  • Ale wordpress imo nepotřebuješ. Jde o to, že každý článek má nějaký ID - v Drupalu to vybíráš jako NID. A tohle postě jen vložit do toho ForeignID. A taky nastavit Type místo Discussion na page

    Teď jsem to zkusil na článku http://if.ischiam.cz/slider-hp/hra-o-truny-na-hbo/. Vlezl jsem do GDN_Discussion. A přenastavil u diskuze Původ Jona Sněha ForeignID=51992 (tj ID toho článku) a type=page. A funguje to.

    Moment, ted mi dochází, kde je problém. A dochází mi, že ty vlastně budeš muset vytáhnout z těch drupal diskuzí (z tabulky Node) i type=story ad. - protože jinak bys neměl kam přiřadit velkou část komentářů.

    Takže vlastně je třeba vytahnout z node úplně všecno (u článků samozřejmě není třeba tahat tělo článku apod.). No a každá tahle položka bude mít nid -> tam, kde byl type=story/book, article (prostě vše krom forum) prostě vezmeš navíc tohle ID a vrazíš ho do foreignID.

    Uff, takhle mi to přijde srozumitelný, ale asi neni, co? :-)
  • Jo áhá, normálně bys nevěřil, ale po asi 5 minutách přemýšlení a čumění do tabulek už mi to dochází. Tak to je super, to by neměl být problém udělat :). Jako bude to ještě makačka, ale vzhledem k tomu, že už mám takové základní "API" v tom mém scriptu, tak se to dělá poměrně rychle :) Díky za vysvětlení ;)
  • No hele, jen jsem do toho na 5 minut zabřed a nebylo mi fajn - vzpomněl jsem si na ten šílenej, způsob, jak jsem to kdysi dostával do toho drupalu - všechny ty tabulky jsem vyplnoval ručo - vytvořil si správnou strukturu na lokále a pak migrace přes CSV tam :-)
  • Jedinej rozdíl u toho způsobu, jak jsem ho popsal a testoval výše, bude, že ty článkové diskuze nebudou mít úvodní příspěvek jako třeba http://if.ischiam.cz/forum/discussion/27/testovaci-prispevek-ice-fire/p1, kde je zase zpětnej odkaz na článek. Ale to mi přijde jako detail, u zásadních článků to kdyžtak dodělam ručně.
  • Tak třeba ti bude ještě lépe z tohoto: http://pastebin.com/aKJJfEb3 samotné čumění do těch tabulek je to nejhorší.
    Předpokládám, že to naroste tak na 250 řádků :). Musel jsem si od toho nachvilku jít oddechnout k seriálu :)
  • šmarja, dostal jsem z toho hlad, jdu na druhou večeři :-)
  • taky mám hlad, jen musím počkat na těstoviny :)
  • upraveno 9. září 2012
    Hm... @alek: nevíš v které tabulce jsou uložené informace, do které kategorie patří typ book, story, webform, poll atd.? V tabulce forum jsou pouze jednotlivé idčka pro forum (id kategorie je ve sloupci tid).
  • Ted nerozumim. To jsou typy článků, nepatří do konkrétních kategorií, book je někdy v Sáze, jindy v Hraní apod. Ke kategorii se vždy váže jen daný článek nezávisle na jeho typu.
  • Nojo, ale já potřebuju vědět s čím je třeba článek typu "book" svázaný (jestli patří do Hraní apod.).
    Když dostanu tabulku s kategoriema (texonomy) do vanilly, normálně se mi vytvoří kategorie "Hraní", "Sága", "Seriál" a do těch jednotlivých kategorií asi potřebuju nacpat ty články. Nebo kam jinam ty články dát?
  • No já pořád nechápu, proč tam motat ty typy článků. To tě prakticky vůbec nezajímá, řekl bych. Zajímá tě jen článek a kategorie, kam patří. A to je v tabulce taxonomy_index - tam je vždy NID (id článku) a TID (id kategorie)...
  • upraveno 9. září 2012
    Díky, já jsem se díval jen do tabulky forum popřípadě forum_index a tam nejsou tid článeků atd. :)
  • jasný :-) to je cena drupalu za to, že v něm uděláš asi fakt cokoli.
  • upraveno 9. září 2012
    Tak, a diskuze už se pěkně přenáší do správných kategorií :). Ještě mám jeden dotaz, asi jsem se včera unáhlil a úplně nechápu to s tím foreignID -- takže pokud to dobře chápu tak do sloupce foreignD mám zadat nid diskuze pokud je to diskuze, která je typu článek, article atd. (vše kromě forum) jinak NULL.... ?

    Zato ten drupal má naprosto nepřehlednou databázi... tolik tabulek, to snad není možný :)
  • paulcz napsal(a):

    Tak, a diskuze už se pěkně přenáší do správných kategorií :). Ještě mám jeden dotaz, asi jsem se včera unáhlil a úplně nechápu to s tím foreignID -- takže pokud to dobře chápu tak do sloupce foreignD mám zadat nid diskuze pokud je to diskuze, která je typu článek, article atd. (vše kromě forum) jinak NULL.... ?

    jo, myslim, že tak jsem to myslel a snad to bude fachat :-) plus nastavit type=page

    ted jsem to ještě testoval na těch Jonových rodičích - tys to změnil na otázku a to zase to propojení rozjelo. Tak jsem tam v db natvrdo nastvil page a už je to zas propojený na http://if.ischiam.cz/slider-hp/hra-o-truny-na-hbo/

    Takže snad jen tyhle dvě věci - autor asi může být autor článku atd.
  • Jj, tak takto to přesně dělám, takže to je v pohodě. Jen body nechávám prázdné, kdyžtak to později upravím tak, že body bude jen část článku, pod to se však odkaz na článek bude muset dát stejně ručně.

    Dneska ještě udělám komentáře, nejvíc se bojím aby ten script nejel pak moc dlouho. No a přes týden udělám pmky a ještě si pohraju s pár detailama jako například, aby se spočítal počet diskuzí a komentářů od kdaždého uživatele a přidal do tabulky -- pokud se nepletu, tak toto drupal vůbec nikde neukládá.
  • to by šlo s tím body, dát tam kus textu - i když skoro důležitější než kus textu by byl ten odkaz. To by tam nešlo natvrdo vypsat www.icefire.cz/?p=ID ?

    A ten skript pojede kde? To tedy stahneš data z db a pustíš to někde na lokále?
    počet diskuzí a komentářů od kdaždého uživatele a přidal do tabulky -- pokud se nepletu, tak toto drupal vůbec nikde neukládá.
    Vím, že ukládá statistiky diskuzí (poslední koment, počet komentů apod.) v node_comment_statistics - kurevsky dlouho mi trvalo než jsem to dokázal při minulé migraci vyplnit :-) ale o statech uživatelů nevim.
  • upraveno 9. září 2012
    alek napsal(a):

    to by šlo s tím body, dát tam kus textu - i když skoro důležitější než kus textu by byl ten odkaz. To by tam nešlo natvrdo vypsat www.icefire.cz/?p=ID ?

    To mě nenapadlo, podívám se na to, takhle to vlastně můžu udělat :)
    A ten skript pojede kde? To tedy stahneš data z db a pustíš to někde na lokále?
    Vzhledem k tomu, že ho dělám v pythonu, tak pojede u mě na lokále. Zatím ten script běží zlomek sekundy, takže je dost možný, že i komentáře nebudou dlouho trvat. A jinak jo, stáhnu potřebné tabylky v csv, navíc to nestahuju jako klasický csv, ale jako odělovač používám \\t a jako nový záznam \\n, snažil jsem se najít něco unikátního, co není v komentářích.. tak doufám, že v žádném komentáři není něco takovéhoto :
    Nějaký komentář \[nový řádek]

    počet diskuzí a komentářů od kdaždého uživatele a přidal do tabulky -- pokud se nepletu, tak toto drupal vůbec nikde neukládá.
    Vím, že ukládá statistiky diskuzí (poslední koment, počet komentů apod.) v node_comment_statistics - kurevsky dlouho mi trvalo než jsem to dokázal při minulé migraci vyplnit :-) ale o statech uživatelů nevim.
    Jo o tom vím, ale počet komentářů tam bohužel není :-/ edit: co to melu, počet komentářů tam jednak je a ani není třeba znát, protože se pak sám aktualizuje (alespoň počítadlo diskuzí se samo aktualizovalo ve vanille), horší je to právě s tím počtem komentářů od jednotlivých uživatelů :)
  • počet komentů v diskuzi? to je comment_count, ne?
  • jo už jsem to editnul :)
  • tak u těch uživatelů asi není potřeba nic mít a ono se to pak zaktualizuje při novém komentu, ne? Nebo na to možná bude nějaká funkce v tom porteru...
  • Ten porter ani nepoužívám, jen se dívám na výstup toho porteru a podle něj to formátuju. To nebude až takový problém to spočítat, to je desetiminutovka.
  • upraveno 9. září 2012
    No tak s komentářema to má 40MB, když to zkomprimuju do txt.gz tak 12MB, takže se bude muset zvětšit velikost uploadu v .htaccess
    php_value upload_max_filesize XXM
    php_value post_max_size XXM
    pak to zkusím (teď mám strašný upload ani ne 1KB/s, tak se mi nechce zkoušet odesílat soubor větší než 2MB), jen doufám, že se to u blueboard nemusí měnit v php.ini jinak by jsi jim musel napsat ať to aspoň dočasně zvýší.
    Ale to snad nehrozí.
  • Skrze administraci tam lze uploadovat na blueboard celou db:

    Import do MySQL databáze
    systém umožňuje importovat dumpy až do velikosti 160 MB

Přidat komentář

bolditalicunderlinestrikecodeimageurlquotespoiler