Drupal 6 upgrade naar Drupal 7
Websites maken met Drupal vind ik persoonlijk zeer leuk. Het is misschien niet het meest eenvoudige pakket, maar de mogelijkheden zijn quasi onbeperkt. Mijn eerste Drupal installatie was nog versie 5. Momenteel is Drupal 7 de meest recente versie. De websites die ik vandaag onderhoud zijn vooral Drupal 6 websites. Voor nieuwe websites kies ik sinds kort Drupal 7, al laat de ontwikkeling van bepaalde interessante modules nog steeds op zich wachten. Toch heb ik daar alle begrip voor. Het maken van modules is niet echt eenvoudig en we moeten de community de nodige tijd geven.
Aangezien Drupal 6 en 7 allebei goed ondersteund worden, kun je vandaag met beide versies mooie websites maken. In principe is het niet noodzakelijk om een upgrade van Drupal 6 naar 7 door te voeren. Toch wou ik het gisterenavond even proberen met deze website, want Drupal 7 is qua onderhoud toch een pak gebruiksvriendelijk naar mijn bescheiden mening. Ik wou het eerst uittesten op deze website. De site bestaat uit een klein aantal pagina's of zogenaamde 'nodes'. Ongeveer 45 nodes. Verder waren er niet zo heel veel modules actief toen deze site nog op Drupal 6 draaide. Bijgevolg was dit de ideale website om als eerste om te zetten. De omzetting is gelukt, maar niet zonder slag of stoot ...
Voor ik aan de upgrade begon, heb ik uiteraard eerst alle instructies gevolgd uit het upgrade.txt bestand.
Hieronder vind je de stappen die ik gevolgd heb om de upgrade uit te voeren. Dit zijn hoofdzakelijk de stappen uit het upgrade.txt bestand, al moest ik op het einde nog enkele zaken aanpassen. De berichten op mijn website werden namelijk opgeslagen als Nederlandse artikelen. Iets wat uiteindelijk voor problemen zorgde (zie verder) en waar ik een oplossing voor heb moeten zoeken.
Handelingen die voor de eigenlijke upgrade werd uitgevoerd:
- De laatste versie van Drupal 6 op de server laten draaien.
- Alle mappen en bestanden vanop de server (website Drupal versie 6) downloaden naar je pc.
- Een back-up maken van je database.
- Controleren of alle modules die nu op je website draaien en niet tot de kern (verplicht en optioneel) behoren al beschikbaar zijn voor Drupal 7.
Indien dit niet het geval is moet je afwegen of je die modules nog wilt gebruiken of niet ... Zijn ze absoluut noodzakelijk voor jouw site, maar nog niet beschikbaar voor Drupal 7, dan is een upgrade nog geen optie. - Inloggen als de hoofdgebruiker (gebruiker met user ID 1).
- De website 'Offline' plaatsen via Beheren > Site-instellingen > Site-onderhoud.
- Het thema Garland als standaard activeren via Beheren > Site-constructie > Templates.
- Vervolgens alle modules uitschakelen die niet tot de kern (verplicht en optioneel) behoren via Beheren > Site-constructie > Modules.
Als je bepaalde modules niet meer wilt gebruiken na de upgrade, dan kun je ze best meteen deïnstalleren. - Tip: neem opnieuw een back-up van de database. Dan zijn de instellingen i.v.m. de uitgeschakelde modules opgenomen ...
Tot zover de stappen die je als ingelogde beheerder via de website kunt invoeren. De volgende zaken moeten via je FTP-programma gebeuren. In mijn geval is dat het gratis programma FileZilla.
- Verwijder via FTP het bestand default.settings.php. Dit bestand is te vinden onder sites/default/default.settings.php.
- Verwijder alle oude bestanden en mappen, behalve de map 'sites' en eventuele persoonlijke mappen (in mijn geval een map 'files' met alle afbeeldingen).
- Indien je bepaalde modules gedeïnstallereerd hebt, kun je best hun map op de server verwijderen via sites/all/modules. De andere modules mogen blijven staan, ook al zijn ze niet compatibel met Drupal 7.
- Download vervolgens de laatste versie van Drupal 7.
- Plaats alle mappen en bestanden op je server.
- Indien je vroeger aanpassingen gemaakt hebt aan .htaccess of robots.txt, dan kun je deze aanpassingen nu ook maken bij de nieuwe bestanden op je server.
- Zorg er zeker voor dat je settings.php bestand schrijfbaar is. (Te vinden via sites/default/settings.php.)
Al deze voorbereidingen verliepen zonder problemen. Vervolgens was het tijd om de upgrade uit te voeren. Toen ik naar de update.php pagina ging ( http://www.voorbeeld.be/update.php) kreeg ik eerst een foutmelding (al kan ik me niet meer herinneren welke foutmelding dit was), maar ik kon wel naar beneden scrollen. Daar zag ik de normale update procedure.
Opmerking: Mocht het je update.php niet kunnen uitvoeren, dan kun je $update_free_access = FALSE; in settings.php wijzigen in $update_free_access = TRUE;
Opgelet: in dat geval mag je achteraf niet vergeten om die TRUE opnieuw te wijzigen in FALSE.
Ik liet de de upgrade uitvoeren. Dit zorgt vooral voor wijzigingen in de database. Na het doorlopen van deze stappen neem je dus best opnieuw een back-up van je bijgewerkte database.
Vervolgens ging ik naar de startpagina van mijn website. Wat meteen opviel, was dat de inhoud niet langer werd weergegeven. De titel van de 'nodes' en ook de taxonomie werd goed weergeven per node, maar de 'body' van het bericht was niet zichbaar. Ik weet niet of er een oplossing is die alles meteen oplost, maar ik heb er alvast heel lang op zitten zoeken. De Nederlandse vertaling voor Drupal 7 werd geïnstalleerd. De taalinstellingen heb ik aangepast, zowel op het niveau van de website, als op het niveau van de inhoudstypen. Toch leek niks te helpen. Uiteindelijk besloot ik om de installatie nog eens opnieuw te doen. Ik verwijderde alles uit de database en de oude database (back-up Drupal 6 - 2e versie > zie hierboven) werd teruggeplaatst. Hetzelfde gebeurde ook met alle bestanden en mappen. Daarna heb ik alle stappen die hierboven beschreven staan opnieuw uitgevoerd, MAAR zonder enig succes!
Uiteindelijk heb ik de installatie van Drupal 7 behouden en gezocht naar een manier om de inhoud terug te halen. Omdat ik al gewerkt had met Drupal 7, heb ik eerst het uiterlijk van de website aangepast zodat alles eruit zag als een nieuwe Drupal 7 website. Als standaard thema heb ik toen Bartik (standaardthema) geactiveerd. Als beheerthema Seven. Dit maakt op zich niet zo heel veel uit, maar voor mij zorgde dat voor een vertrouwde werkomgeving.
Bij de modules activeerde ik Contextual links, Dashboard, Image, Overlay, Toolbar en Content translation. Met die laatste hoopte ik het probleem misschien op te lossen, maar daar was ik jammer genoeg niet mee geholpen. De andere modules hebben ook geen effect op de taal, maar zorgen er wel voor dat je voordelen van Drupal 7 kunt gebruiken.
Via alle beheermogelijkheden heb ik geprobeerd om de inhoud terug te krijgen, maar telkens zonder succes. Nieuwe inhoud plaatsen was echter geen probleem. Het duurde niet lang voor ik een kijkje ging nemen in de database, want daar wordt alle inhoud uiteindelijk bewaard. Daaruit bleek dat de inhoud die hoorde bij de artikels wel nog aanwezig was in de tabellen field_data_body en field_revision_body. Bij het veld 'language' stond bij alle oude berichten de code 'nl', behalve bij de nieuwe berichten die gepost werden. Daar vond ik de code 'und'. Die 'und' wijst waarschijnlijk op 'undefined', wat staat voor 'taalonafhankelijk'. Mijn eerste doelstelling was vervolgens om ervoor te zorgen dat nieuwe posts als 'nl' worden opgeslagen in de twee genoemde tabellen. Dat is me tot op heden echter nog niet gelukt. Toch worden alle artikels als 'Nederlands' aangeduid in de lijst als ik het op de website bekijk. Waarschijnlijk komt die informatie uit de tabel 'node'.
Aangezien ik de inhoud nog had van alle berichten, heb ik daarna de inhoud van een artikel gewoon geplakt in de body (via de website) en zo het artikel bijgewerkt. Wanneer ik dat deed, werd er in de tabellen field_data_body en field_revision_body een tweede record toegevoegd van hetzelfde artikel waarbij de taal nu ook als 'und' werd weergegeven. Nu zou je denken dat ik de oplossing gevonden had, want het probleem zou toch moeten opgelost zijn als je alle huidige aanduidingen van 'nl' naar 'und' zou veranderen. Dat was dan ook hetgeen ik probeerde, maar enkel het laatste nieuwe artikel en het bijgewerkt artikel werden goed weergegeven.
Op dat moment had ik al vrij veel tijd gestoken in het zoeken naar een oplossing voor mijn probleem. Ik had uiteraard ook al online gezocht naar oplossingen en was ondertussen te weten gekomen dat ik niet de enige was met dit probleem. Blijkbaar was er ook al een zogenaamde 'patch' om van Drupal 6 naar 7 te gaan zonder al te veel taalproblemen, maar op dat moment kwam die patch al te laat voor mij.
Ik bleef dus zoeken binnen de database. Zo nam ik een back-up van de volledige database, wijzigde ik één artikel en nam ik opnieuw een back-up van de database om te zien of er verschillen waren tussen beide bestanden. Voor Windows gebruikers is WinMerge trouwens een ideaal open source (= gratis) programma om twee bestanden of mappen met elkaar te vergelijken! Voor mij gaf de vergelijking jammer genoeg geen uitsluitsel, want als je één artikel wijzigt, merk je toch dat er véél wijzigingen gebeuren in de database. Aan de andere kant is de vergelijking toch de sleutel geweest voor het uiteindelijk slagen in mijn doelstelling. Ik had namelijk gemerkt dat er telkens zaken gewijzigd werden in bepaalde 'cache'-tabellen. Ik heb er toen nog even op gezocht, maar zal jullie alle verdere pogingen besparen. Uiteindelijk bracht dit de oplossing:
- In de tabellen field_data_body en field_revision_body alle huidige aanduidingen bij 'language' van 'nl' naar 'und' veranderen.
- Vervolgens naar je website gaan als beheerder en bij Instellingen > Ontwikkeling > Prestaties > 'Alle caches legen' kiezen.
Daarna kreeg ik alle inhoud te zien op deze website. Een eenvoudige oplossing, maar wat een lijdensweg om tot dit punt te komen. Vandaar dit artikel voor mensen die hetzelfde probleem hebben. Misschien kan dit artikel je verder helpen. Mocht dat het geval zijn, laat het me dan gerust weten in een reactie. Dat werkt aanmoedigend om dergelijke problemen in het vervolg ook nog uit te schrijven. Of misschien is het probleem ondertussen opgelost in een nieuwere versie dan Drupal 7 (de versie waarmee ik aan de slag ging was Drupal 7.7). Laat me gerust weten als de bug er ondertussen uit gehaald is, want ik denk toch dat ik daarop wacht voor ik verder nog andere websites upgrade van 6 naar 7.

Reactie toevoegen