FS Data

FS Data - webbhotell, domännamn, e-post, servrar


  • Om oss

  • Blogg

  • Panel

  • Webbmail

  • Support

apr 04 2013

Flytta från Drupal till WordPress

Under påskhelgen som var så utförde jag en flytt, eller migrering, från Drupal till WordPress. Innan flytten funderade jag mycket kring hur svårt det skulle vara, om det ens var möjligt. Med facit i hand så var det enklare än förväntat. Tänkte därför berätta lite kort om detta, om fler vill göra detsamma.

Varför ska man då flytta från Drupal till WordPress?

Flytta från Drupal till WordPressDrupal är ett riktigt bra CMS. Den har en stor användarbas med många olika tillägg och teman. Personligen har jag dock större kunskap om WordPress och detta var en Drupal 6-sida som hade behövt uppgraderas till Drupal 7, vilket är ett rätt så stort projekt i sig. Därav denna migrering.

Flytten skedde mellan Drupal 6.2.6 och WordPress 3.5.1. Dessa instruktioner kan fungera med andra versioner av Drupal och WordPress, men det kan inte garanteras (t ex pga förändrad tabellstruktur, ändrade fältnamn osv). Som alltid, när man gör sådana här saker, se till att du har ordentlig backup på allt.

Så flyttar man från Drupal till WordPress

1. Börja med att exportera den fullständiga databasen för Drupal-sidan och ladda ner den till din dator. Det gör man enklast via t ex phpMyAdmin och dess exportfunktion (kör bara en standardexport). Om det är en stor Drupal-sida så kan det här ta en stund.

2. Installera sedan den nya WordPress-sidan. Om du har ett webbhotellspaket hos FS Data så kan du följa dessa enkla instruktioner: FS Data manualer, Installera WordPress på ditt webbhotell.

3. Skapa därefter ytterligare en MySQL-databas. Det är till denna databas som vi ska importera den tidigare exporterade databasen från Drupal. Instruktioner för hur man skapar en databas hos FS Data finns här: FS Data manualer, Skapa MySQL-databas.

4. Nu är det dags att importera den tidigare exporterade databasen. Om databasexporten är större än 25 MB så bör man använda en fristående MySQL-klient istället för phpMyAdmin. Jag använder Mac OS X och kan rekommendera den kostnadsfria MySQL-klienten Sequel Pro. Anslut mot den nyligen skapade (och tomma) MySQL-databasen och importera den exporterade Drupal-databasen. Detta kan likaså ta en stund att genomföra.

5. När importen är klar så är det dags att köra ett antal SQL-kommandon. Dessa kommandon är anpassade för en WordPress-databas med namnet ”u1234567_a” och en (importerad) Drupal-databas med namnet ”u1234567_d”, så man behöver givetvis anpassa detta efter namnen på sina motsvarande databaser. Förslagsvis att man använder en separat MySQL-klient även för att köra dessa SQL-kommandon.

Vi börjar med att rensa WordPress-databasen från de inlägg/kommentarer som ingår i en ny WordPress-installation.

TRUNCATE TABLE u1234567_a.wp_comments;
TRUNCATE TABLE u1234567_a.wp_links;
TRUNCATE TABLE u1234567_a.wp_postmeta;
TRUNCATE TABLE u1234567_a.wp_posts;
TRUNCATE TABLE u1234567_a.wp_term_relationships;
TRUNCATE TABLE u1234567_a.wp_term_taxonomy;
TRUNCATE TABLE u1234567_a.wp_terms;

Därefter är det dags att importera lite kategorier från Drupal-databasen till WordPress-databasen. Notera att WordPress kräver unika kategorinamn, till skillnad från Drupal. Om du har flera kategorier med samma namn i Drupal så behöver dessa döpas om innan importen.

INSERT INTO u1234567_a.wp_terms (term_id, `name`, slug, term_group)
SELECT
d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0
FROM u1234567_d.term_data d
INNER JOIN u1234567_d.term_hierarchy h
USING(tid)
;

INSERT INTO u1234567_a.wp_term_taxonomy (term_id, taxonomy, description, parent)
SELECT
d.tid `term_id`,
'category' `taxonomy`,
d.description `description`,
h.parent `parent`
FROM u1234567_d.term_data d
INNER JOIN u1234567_d.term_hierarchy h
USING(tid)
;

Sedan importerar vi alla sidor från Drupal-databasen till WordPress-databasen.

INSERT INTO
u1234567_a.wp_posts (id, post_date, post_content, post_title,
post_excerpt, post_name, post_modified)
SELECT DISTINCT
n.nid, FROM_UNIXTIME(created), body, n.title,
teaser,
REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'),
FROM_UNIXTIME(changed)
FROM u1234567_d.node n, u1234567_d.node_revisions r
WHERE n.vid = r.vid

Samt kopplar dessa inlägg/sidor till rätt kategorier.

INSERT INTO u1234567_a.wp_term_relationships (object_id, term_taxonomy_id)
SELECT nid, tid FROM u1234567_d.term_node;

UPDATE wp_term_taxonomy tt
SET `count` = (
SELECT COUNT(tr.object_id)
FROM wp_term_relationships tr
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);

Vi importerar även kommentarer och döljer eventuella dolda kommentarer.

INSERT INTO u1234567_a.wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url, comment_approved)
SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage, status FROM u1234567_d.comments;

UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);

Sedan ordnar vi lite radbrytningar i de importerade inläggen/sidorna.

UPDATE u1234567_a.wp_posts SET post_content = REPLACE(post_content, '', '');

För att till sist ändra sökvägen till samtliga bilder för våra importerade inlägg/sidor.

UPDATE u1234567_a.wp_posts SET post_content = REPLACE(post_content, '"/sites/default/files/', '"/wp-content/uploads/sites/8old/');

UPDATE u1234567_a.wp_posts SET post_content = REPLACE(post_content, 'http://www.exempel.se/sites/default/files/', '/wp-content/uploads/sites/8old/');

Ersätt http://www.exempel.se ovan med adressen till den tidigare Drupal-sidan. Sökvägen till filerna i Drupal kan även behöva anpassas. Sedan är vi klara med våra SQL-kommandon.

Om man vill importera de tidigare användarna från Drupal-databasen till WordPress-databasen så kan man följa instruktionerna i slutet av detta blogginlägg: Migration from Drupal to WordPress. I mitt fall så gjorde jag inte det, utan samtliga inlägg/sidor kopplades till min enda WordPress-användare (som skapades när jag installerade WordPress).

6. Några saker kvarstår innan vi är helt klara med flytten. Först så behöver vi hämta samtliga bilder från Drupal-sidan och lägga upp dem i WordPress. Det gör man genom att logga in mot den gamla Drupal-sidan via FTP/SFTP och hämta ner samtliga bilder under /sites/default/files/ (standardsökvägen för Drupal-sidor, kan behöva anpassas). Dessa laddar man sedan upp mot den nya WordPress-sidan under /wp-content/uploads/sites/8old/ (skapa old-mappen). Detta innebär dock att bilderna inte hamnar i WordPress inbyggda mediahantering.

7. När vi importerade sidorna från Drupal, med ovan angivna SQL-kommandon, så skapades de som inlägg i WordPress. Om man vill att de istället ska vara sidor i WordPress så kan man installera/aktivera följande WordPress-tillägg: Post Type Switcher. Med det tillägget installerat så är det bara att redigera valfritt inlägg och ändra ”Post Type” till Page för att ändra inlägget till en vanlig sida.

Mycket svårare än så här är det inte att flytta en sida från Drupal till WordPress.

Utöver ovanstående saker så behöver man givetvis ställa in permalänkarna på din nya WordPress-sida, skapa användare, välja ett tema och strukturera upp sina sidor/inlägg osv. För en normalstor sida tar det inte mer än någon timme eller två. Därefter är det WordPress för hela slanten som gäller!

Lämna gärna en kommentar om du har några frågor eller om du flyttar från Drupal till WordPress med denna guide.

Written by · Categorized: WordPress · Tagged: Drupal, Flytta, Guide, Migrera, MySQL, Tips, Webbhotell, WordPress

mar 14 2013

Reader är död, länge leve RSS

Google har precis annonserat att de kommer att stänga ner sin RSS-läsare, Google Reader. Även om Google Reader är en av världens mest populära RSS-läsare så är det inte tillräckligt. Användningen av Google Reader har minskat, samtidigt som Google vill fokusera på andra tjänster (såsom Google+).

RSS används för att distribuera information, såsom nyheter och blogginlägg, på ett standardiserat sätt. Vi har t ex RSS-flöden till vår företagsblogg: fsdata.se/blogg/feed/ och till vår driftstatus: status.fsdata.se/feed/

RSS-läsareUndertecknad är en flitig användare av Google Reader. Min Reader innehåller 1 000-tals RSS-flöden, sorterade i kategorier såsom Webbhotell, WordPress osv. Även om allt mer av det dagliga informationsflödet kommer från sociala nätverk så har Google Reader varit ett oumbärligt arbetsverktyg för mig.

Google Reader kommer dock inte att stängas ner omedelbart. RSS-läsaren är fortsatt tillgänglig fram till den 1:a juli 2013 och Google erbjuder möjlighet till export av RSS-flöden osv, via Google Takeout. Men det gäller att börja se sig om efter alternativ redan nu.

Så vad finns det för alternativ till Google Reader?

Här är några webbaserade RSS-läsare:

  • Newsblur – är förmodligen den RSS-läsare som är mest lik Google Reader. Erbjuder snabba uppdateringar, stöd för många olika plattformar med möjlighet att kategorisera och dela inlägg. Finns både som en gratisvariant och en version som kostar $1 USD/månad.
  • Feedly – erbjuder ett nytt sätt att läsa och dela inlägg från RSS-flöden. Är inte helt webbaserad, utan fungerar via tillägg till webbläsare. Har även stöd för olika plattformar samt erbjuder bra importmöjligheter. Är kostnadsfri.
  • Netvibes – är egentligen mer än bara en RSS-läsare. Samlar även flöden från sociala nätverk och erbjuder stor anpassningsbarhet. Fungerar med många olika plattformar. Erbjuds både kostnadsfritt och som betalversioner.
  • FeedReader – har ett tydligt och enkelt gränssnitt, snarlikt det i Google Reader. Erbjuds både som lokal klient (till Windows) samt genom ett webbgränssnitt. Har dock inte uppdaterats på ett tag. Både kostnadsfritt och betalversion.
  • The Old Reader – låt inte namnet förvilla dig. Dess gränssnitt är snyggt, enkelt och funktionellt. Fungerar med olika plattformar och har importfunktioner, kategorisering, enkla delningsfunktioner m.m. Befinner sig just nu i (kostnadsfri) beta.
  • Fever – är en webbaserad RSS-läsare som man installerar på en egen server/webbhotell. Har ett tydligt gränssnitt och rankar även RSS-flöden/inlägg baserat på popularitet. Erbjuder stöd för import, kategorier och kortkommandon. Kostar $30 USD och fungerar alldeles utmärkt med ett webbhotellspaket hos oss.

Utöver de webbaserade RSS-läsarna så finns även ett stort antal RSS-klienter till Windows, Mac och Linux. Faktum är att de flesta e-postprogram, såsom Mac Mail och Outlook, erbjuder stöd för hantering av RSS-flöden.

Använder du Google Reader idag och har du bestämt dig för vilken RSS-läsare du ska byta till? Eller har du tips på en RSS-läsare som vi har missat? Lämna gärna en kommentar här nedan!

Written by · Categorized: Internet · Tagged: Blogginlägg, Byta, Feedly, FeedReader, Google Reader, Migrera, Netvibes, Newsblur, Nyheter, RSS, The Old Reader, Tips

© 2025 FS Data AB | Priser exkl. moms