[montellug-site] Xoops to Wordpress

  • From: Syslac <lmezzalira@xxxxxxxxx>
  • To: montellug-site@xxxxxxxxxxxxx
  • Date: Fri, 26 Nov 2010 23:54:20 +0100

Salve,

Immagino di averci messo un po', ma finalmente ho trovato il tempo di
fare qualche test in locale che spero sia utile per il prossimo sito.

In particolare, ho provato a migrare le notizie da un'installazione di
Xoops ad una di Wordpress... il risultato è che funziona, anche se non
immediatamente e la documentazione in giro è un po' datata, e
soprattutto è importante che ci sia riuscito io, che non sono
esattamente un ninja dell'SQL.

Per evitare di dimenticarmi, e come suggerimento a chi volesse
provarci, la query di "estrazione" è questa :

CREATE TABLE wordpress_posts AS SELECT storyid AS ID, 1 AS
post_author, FROM_UNIXTIME( published ) AS post_date, FROM_UNIXTIME(
published ) AS post_date_gmt, CONCAT( hometext, ' ', bodytext ) AS
post_content, title AS post_title, hometext AS post_excerpt, 'publish'
AS post_status, 'closed' AS comment_status, 'closed' AS ping_status,
'' AS post_password, storyid AS post_name, '' AS to_ping, '' AS
pinged, FROM_UNIXTIME( published ) AS post_modified, FROM_UNIXTIME(
published ) AS post_modified_gmt, '' AS post_content_filtered, "" AS
post_parent, '' AS guid, '' AS menu_order, "post" AS post_type, '' AS
post_mime_type, 0 AS comment_count FROM `xoops_stories`

dove ovviamente i nomi delle tabelle vanno cambiati a piacere.
Poi, la tabella "wordpress_posts" risultante può essere esportata e
reimportata nel nuovo db ad esempio con phpmyadmin (tra l'altro, ho
notato che è meglio che la tabella "obiettivo" esista già prima
dell'importazione, in modo da usare la struttura, per i campi, di
wordpress e non di xoops, il che evita "tipi di dato" sfalsati (ad
esempio CHAR singoli dove dovrebbero esserci VARCHAR da 255
caratteri); non so se in caso contrario crei effettivamente
incompatibilità, ma se si può evitare...).

La metodologia è un po' brutale, perché così com'è perde ogni
associazione post-autore, o post-categoria, ma funziona.
Un cambiamento importante rispetto a quello che si trova su Google è
che la parte "post" AS post_type è obbligatoria, o almeno a me
wordpress non li vede, un altro extra potrebbe essere modificare il
guid in modo che assomigli a quello che hanno le news native di
wordpress, ma bisogna sapere l'url del sito per farlo.
L'ultima cosa; il CONCAT non fa altro che unire la "preview"
dell'articolo (il classico "read more", che in xoops è obbligatorio,
credo) all'articolo intero; si può decidere in che modo unirli, o se
ignorare la cosa, in base a come è usata la preview sul sito attuale
del LUG.

Quindi, la migrazione si può fare, resta da capire quando e come,

Syslac

Other related posts: