Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:moodle:moodle_auf_version_2_migration]] 

Migration von Moodle auf Version 2

Die hier beschriebene Vorgehensweise setzt einiges Wissen über den Umgang mit einem Linux-Terminal und SQL-Datenbanken voraus. Fehler können verheerende Folgen haben.

Vorbemerkungen

Wir haben bei uns an der Schule bisher das Moodle-Paket vom Musterlösungsserver installiert. Zwischendurch haben wir noch das Wiki-Modul auf eine neuere Version aktualisiert. Damit liegt eine problematische Installation vor. Besonders das Wiki-Modul hat einiges an Kopfzerbrechen bereitet.

Ich habe die Datenbank gesichert, die Migration durchgeführt und bin im Falle von Fehlermeldungen wieder zum Ausgangspunkt zurückgekehrt, habe neu migriert…

So bin ich schließlich zu einer fehlerfreien Migration gekommen.

Aktualisierung von Moodle 1.9.12 -> 1.9.19

Sichern Sie zunächst die alte Moodle-Installation.

Die Aktualisierung erfolgt in 3 Schritten, nämlich zunächst auf die letzte Moodle 1.9.x (also 1.9.19), dann auf Moodle 2.2(genau 2.2.5), dann auf Moodle 2.3 (genauer 2.3.2). Alle diese Versionen kann man sich als tgz-Paket bei Moodle herunterladen.

Es ist sinnvoll, vorher alle Erweiterungen zu entfernen, die nicht (mehr) für Moodle 2.3 verfügbar sind, alle anderen Erweiterungen müssen versionsweise mitgezogen werden. Im Zweifelsfall können Sie auf Moodle nach den Plugins suchen, um zu sehen, welche noch vorhanden sind. Moodle zeigt vor einer Aktualisierung der Datenbank genau an, welche Module aktualisiert werden, welche zum Kernsystem gehören und welche nicht vorhanden sind.

Datenbankprobleme 1.9.12 -> 1.9.19

Es muss einfach die Datei moodle-1.9.19.tgz in das Verzeichnis /usr/share/moodle ausgepackt werden und anschließend muss man sich als wwwadmin anmelden.

Das Update läuft problemlos durch.

Abschließend müssen die Vorbereitungen für die Migration nach 2.2.5 durchgeführt werden.

Aktualisierung von Moodle 1.9.19 -> 2.2.5

Datenbankprobleme 1.9.19 -> 2.2.5

Korrigieren von Datenbankfehlern. Im folgenden finden Sie die Reparatur-SQL-Befehle. Sie müssen z.B. bei psql eingegeben werden.

  • In mdl_user hat lastip Nullwerte, die durch '0.0.0.0' ersetzt werden müssen. Die Abfrage lautet:
    UPDATE mdl_user SET lastip='0.0.0.0' WHERE lastip IS NULL;
  • Ebenfalls hat das Feld city Nullwerte:
    UPDATE mdl_user SET city='Hildesheim' WHERE city IS NULL;
  • In mdl_resource hat das Feld reference Nullwerte:
    UPDATE mdl_resource SET reference=0 WHERE reference IS NULL;

problematische Module

Die unter Ausnahmen gelisteten Plugins müssen vor dem Upgrade deinstalliert werden, also

  • stack
  • exercise
  • lams
  • webquest
  • exabis_eportfolio
  • admin_alert
  • wiki_*
  • mindmap
  • mrbs

Achtung: Nach der Deinstallation müssen die entsprechenden Unterverzeichnisse gelöscht werden, sonst installieren sich die Module wieder.

Ausführliches

Das Block-Modul stack wird nicht mit aktualisiert, da es eine komplett neue Version davon gibt, die erst im Anschluss installiert werden sollte.

Das Block-Modul book ist für 2.2 nicht vorhanden und gehört bei 2.3 automatisch zum Kern von Moodle.

Die Module exercise, lams, webquest sind nicht auffindbar.

Die Blöcke admin_alert, stack, book, exabis_eportfolio, wiki_* müssen gelöscht werden.

Der Block exabis_eportfolio wurde in exabis_exaport umbenannt.

Der Block mindmap erzeugt Aktualisierungsprobleme, muss daher zunächst gelöscht werden.

Das Modul mrbs lässt sich nicht übernehmen.

Eventuell zusätzliche Module

Zunächst muss moodle-2.2.5.tgz heruntergeladen und in ein neu erstelltes Verzeichnis /usr/share/moodle ausgepackt werden. Die Datei config.php wird aus der alten Installation in das neue Verzeichnis kopiert.

Alle zusätzlich installierten Plugins müssen jetzt von Moodle heruntergeladen und in das neue Moodle-Verzeichnis kopiert werden, also alle Einträge mit dem Eintrag Missing from disk.

Es handelt sich (bei mir) um die Module

  • hotpot
  • journal
  • mindmap

und um die Blöcke

  • quickmail
  • mrbs
  • exabis_exaport

Der Ordner lang muss ein Link auf /var/lib/moodle/lang sein.

Hinweis: Die Datei config.php muss unter /usr/share/moodle sein und auf /etc/moodle verlinkt sein, andersherum1) funktioniert Moodle nicht.

Ich habe den einen beispielhaften Dateiinhalt unten angehängt.

Beim Aufrufen der Moodle-Seite wird jetzt auf 2.2.5 aktualisiert.

Aktualisierung von Moodle 2.2.5 -> 2.3.2

Datenbankprobleme von 2.2.5 auf 2.3.2

Wieder müssen einzelne Fehler in der Datenbank korrigiert werden.

  • In mdl_user darf das Feld picture nicht null sein.
    UPDATE mdl_user SET picture=0 WHERE picture IS NULL;
  • Kontrollieren Sie, ob der Filter 1 wirklich der mit dynalink.php2) ist, indem Sie
    select * from mdl_filter_active;

    eingeben und die id kontrollieren. In mdl_filter_active muss der Filter 1 entfernt werden

    DELETE FROM mdl_filter_active WHERE id=1;

Module

Ich hatte einige zusätzliche Module installiert, deren Probleme ich hier beschreibe.

enrol openlml

Das Modul kann nun bequem von Moodle http://www.moodle.org heruntergeladen und installiert werden. Die deutsche Übersetzung befindet sich im Sprachpaket.

  • Website-Administration→Lokales→Stadt/Ort: Hildesheim
  • Website-Administration→Lokales→Zeitzonen aktualisieren
  • Website-Administration→Lokales→Zeitzone: Deutschland/Berlin einstellen

config.php

<?                           
 # This file has been generated by debconf                            
 # You can find a commented config file in /usr/share/doc/moodle/                                         
                                                                         
unset($CFG);                                                                                               

global $CFG;                                                                                                      
                                                                  

$CFG = new stdClass();                                                                                                                                                              
                                                                                                                                                                                    
$CFG->passwordsaltmain = ...;
$CFG->dbtype = 'pgsql';                                                                                                                                                             
$CFG->dblibrary = 'native';                                                                                                                                                         
$CFG->dbhost = 'localhost';                                                                                                                                                         
$CFG->dbname = 'moodle';                                                                                                                                                            
$CFG->dbuser = 'moodle';                                                                                                                                                            
$CFG->dbpass = ...;
                                                                                                           
                                                                                                                                                    

$CFG->prefix = 'mdl_';                                                                                                    
$CFG->dboptions = array(
    'dbpersist' => false,             
    'dbsocket'  => false,
    'dbport'    => '',                                                      
);                                                                                                                                                                                  

$CFG->wwwroot = ...
$CFG->dirroot = '/usr/share/moodle';
$CFG->dataroot = '/var/lib/moodle';
$CFG->directorypermissions = 0750;
$CFG->admin = 'admin';
$CFG->maxbytes = ...

$CFG->respectsessionsettings = true;

require_once(dirname(__FILE__) . '/lib/setup.php'); // Do not edit

// There is no php closing tag in this,
// it is intentional because it prevents trailing whitespace problems!
1)
so war es bisher
2)
aus dem Gedächtnis
 [[anwenderwiki:moodle:moodle_auf_version_2_migration]] anwenderwiki/moodle/moodle_auf_version_2_migration.txt · Zuletzt geändert: 2015/08/01 07:15 von 127.0.0.1