Database gastenboek omzetten

Al heel lang geleden had ik voor de site Rejoiceweerselo.nl gekozen voor het EasyGB gastenboek op Joomla. Nadat deze site was gemigreerd naar een andere provider bleek het echter niet moeer mogelijk om nieuwe berichten te plaatsen.

Ik heb een paar pogingen gedaan om dat te herstellen zoals component verwijderen en de betreffende database weg te gooien en daarna weer alles te installeren, doch zonder succes. Daarom besloten even te kijken naar de mogelijkheid van een ander gastenboek, vooral omdat EasyGB de latere versies van Joomla niet meer ondersteund.

Daarbij kwam ik op het blijkbaar zeer populaire Phoca Guestbook. Na de installatie van het pakket en het taal pakket werkte het meteen. Wel moest ik nu de oude berichten over zien te zetten en dat was wat lastiger.

Om dat te doen heb ik de oude database naar excel geexporteerd. In de nieuwe heb ik een bericht geplaatst en als SQL geexporteerd.

In Excel heb ik van de oude database de kolommen zodanig aangepast en verwisseld dat de volgorde overeen kwam met de volgorde van de records in de SQL file van de nieuwe database. Vervolgens heb ik de excel file geexporteerd als CSV file. Deze heb ik met een tekst editor aangepast en d.m.v. find and replace de tussenliggende karakters (puntkomma’s naar quote’s en komma’s) zodanig aangepast dat ze overeenkwamen met de sql formattering.

Al de records heb ik vervolgens in de SQL file geplaatst. Vanuit de database manager van de site heb ik vervolgens de complete SQL string geimporteerd. Na uiteindelijk toch nog heel wat foutmeldingen bij het inlezen lukte het om alle oude berichten weer in beeld te krijgen. De foutmeldingen:

  • Elk record had ik afgesloten met een ); Dat bleek een ), te moeten zijn en de ; gold alleen voor het laatste record
  • bij de omzetting van de tekst heb ik alle <p> en </p> ‘s gelijk gemaakt, ongeacht of daar quotes voor stonden. Achteraf is dit er de oorzaak van geweest dat ik alle quotes in z’n, m’n e.d. handmatig aan heb moeten passen.
  • Niet alle omzettingen bij de find and replace waren foutloos gegaan. Achteraf had ik in de excel file kolommen tussen moeten voegen met een unieke string (bijv. “kolom1”) hetgeen ik eenvoudige in find and replace had kunnen gebruiken.