Cum merge “Operațiunea Brutus”

Operațiunea Brutus, trebuie să admit, merge mai încet decât m-aș fi așteptat. Dar tot răul e spre bine, întrucât am făcut ca unele conversii să meargă automat, astfel încât, când migrarea definitivă se va fi pornit, întreg procesul ar trebui să dureze doar câteva ore.

Pe scurt am făcut așa:

  • Importul articolelor. Toate peste 4000 deodată.
    • Ce e OK:
      • Se păstrează ID-ul fiecărui articol (și se leagă mai departe comentariile înapoi de el).
      • Articolele sunt întregi.
    • Ce nu e OK:
      • Toate articolele apar ca fiind fără categorie. Deci codul trebuie un pic rafinat (fix la asta lucrez).
      • S-ar putea să fie probleme la conversia din secțiuni/ categorii. Lucrez la asta și la ce am scris mai sus.
  • Importul comentariilor și legarea lor la articole. Peste 21,000 de comentarii.
    • Ce e OK:
      • Comentariile sunt la locul lor, inclusiv comentariile care sunt răspuns la alte comentarii (nested comments).
    • Ce nu e OK:
      • Nu apar Gravatar (deși adresele de e-mail sunt bune).

Urmează, tot astăzi:

  • Importul fotografiilor din galeria foto în NextGen (spre prânz).
  • Importul downloadurilor (spre seară, dacă este timp).

Dacă primesc și asistență, tot astăzi:

  • Facem scripturile de MySQL pentru curățarea sintaxei de Joomla! și înlocuirea cu cea de WordPress.

În principiu, fiindcă nu se vor putea face atunci toate, am început să mut fișierele pe cel de-al doilea VPS, astfel încât când migrarea cea mare și permanentă va avea loc, cel mai probabil weekendul viitor, să fie vorba doar despre despre importul fișierului de baze de date pe noul server și executarea unor scripturi de MySQL asupra bazei de date, întrucât metoda aceasta este mai rapidă decât scrierea de cod executabil în ceva extern bazei de date (PHP, Perl, Python).

Adică importul din Joomla la WordPress pentru articole, însumând vreo 5 MB, sau pentru comentarii, vreo 7 MB, s-au produs instantaneu. Problema este că MySQL are niște limitări, chestie care mă face să-mi dau cărămizi în gură.

Exemplu de cod care importă articolele de Joomla! în WordPress:

insert into wp_posts
(select id as ID,
1 as post_author,
created as post_date,
created as post_date_gmt,
concat(introtext,'<!–more–>’,`fulltext`) as post_content,
title as post_title,
null as post_excerpt,
if(state=1,"publish","private" ) as post_status,
"open" as comment_status,
"open" as ping_status,
"" as post_password,
title as post_name,
"" as to_ping,
"" as pinged,
modified as post_modified,
"" as post_modified_gmt, <!– Aici este o eroare, dar se poate rezolva repede.
"" as post_content_filtered,
parentid as post_parent,
concat("http://robintel.ro/?p=",id) as guid,
0 as menu_order,
"" as post_type,
"" as post_mime_type,
0 as comment_count
from jos_content);

Mi se pare un exemplu foarte elegant de cod. Și nu, nu e nevoie decât de vreo 20 de astfel de interogări babane. Durează un pic să le scrii, dacă greșești îți ia un pic să repari, dar merge, cât de cât.

2 Comentarii

  1. Bogdan 17 octombrie 2010 la 11:10 - Raspunde

    Aaaaa.. deci matale ma "lesi" singur in Joomla mea? Tradare, tradare, de 3 ori tradare! :flame:

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.