Dolibarr Update: Checkliste und Versionen 16 bis 24
Was bei einem Dolibarr-Update wirklich kaputtgeht, die Checkliste vor dem Start, der Ablauf, der Weg zurück und die Versionstabelle 16 bis 24: PHP, entfernte Module, Fallen.
Viele Unternehmen bleiben jahrelang auf derselben Dolibarr-Version, aus Angst, dass danach nichts mehr funktioniert. Die Angst ist berechtigt, zielt aber meist auf das Falsche. Fast nie geht Dolibarr selbst kaputt. Es ist das, was Sie drumherum ergänzt haben.
Um das zu prüfen, wurden 45 freie Module auf Test-Instanzen installiert und dann tatsächlich aktualisiert, Version für Version, bis zur 24: insgesamt 280 Versionswechsel. Die Vergleichsinstanz ohne zusätzliches Modul lief von 16 bis 24 ohne einen einzigen fatalen Fehler. Alle gefundenen Ausfälle kamen aus dem Code externer Module. Und 13 dieser Module hatten schon vor jedem Update einen fatalen Fehler, ohne dass es jemand bemerkt hatte.
Das Risiko liegt also an vier Stellen, immer denselben:
- externe Module, also alles im Ordner
custom/; - die PHP-Version Ihres Servers;
- berechnete oder bedingte Zusatzfelder und ihre Filter;
- versteckte Einstellungen und die Variablen Ihrer E-Mail- und Dokumentvorlagen, von denen einige umbenannt wurden.
Warum gerade jetzt
Die E-Rechnung macht aktuelle Versionen zur Pflicht. In Deutschland müssen Unternehmen seit Januar 2025 E-Rechnungen empfangen können, die Pflicht zum Versand folgt 2027 und 2028. In Frankreich gilt die Empfangspflicht seit September 2026. Die aktuellen Module für elektronische Rechnungen setzen neuere Dolibarr-Versionen voraus: Wer noch auf einer alten Version arbeitet, kommt um ein Update nicht herum.
Vorher: die Checkliste
- Notieren Sie Ihre genaue Dolibarr-Version und Ihre PHP-Version. Beide stehen in den Systeminformationen der Administrationswerkzeuge.
- Vergleichen Sie Ihre PHP-Version mit der Tabelle unten. Unterhalb des Minimums bietet der Update-Assistent gar nichts an. Oberhalb der höchsten vorgesehenen Version zeigt er nur eine Warnung: Es kann funktionieren, aber niemand hat es für Sie getestet.
- Listen Sie Ihre externen Module auf, also alles im Ordner
custom/. Prüfen Sie für jedes, ob eine Version als kompatibel mit Ihrer Zielversion angegeben ist, und besorgen Sie sie vor dem Start. Das ist die häufigste Ausfallursache. - Prüfen Sie Ihre Zusatzfelder: berechnete Felder, ihre Anzeigebedingungen und ihre Filter. Mehrere alte Schreibweisen werden nicht mehr akzeptiert (Details je Version weiter unten).
- Suchen Sie die versteckten Einstellungen, die Sie gesetzt haben, in der erweiterten Konfiguration: Einige wurden umbenannt, eine hat sogar ihre Bedeutung umgekehrt.
- Prüfen Sie Ihre E-Mail-Vorlagen und Ihre ODT-Dokumentvorlagen: Einige Ersetzungsvariablen gibt es nicht mehr.
- Machen Sie eine vollständige Sicherung und prüfen Sie, dass Sie sie wiederherstellen
können. Vollständig heißt: die Datenbank, der Dokumentenordner, die Datei
conf/conf.phpund der Ordnercustom/. Eine Sicherung, die nie wiederhergestellt wurde, ist nur eine Hoffnung. - Proben Sie das Update an einer Kopie, bevor Sie die echte Instanz anfassen. Nur so sehen Sie die Ausfälle vor Ihren Benutzern.
Um bei dieser Checkliste Zeit zu sparen, erledigt das kostenlose Modul Update-Bereitschaftsprüfung die meisten dieser Prüfungen, ohne etwas zu verändern: Es liest den Code jedes externen Moduls gegen die Zielversion, prüft PHP, die Datenbank, berechnete Felder und ODT-Vorlagen und liefert einen Bericht. Es ersetzt weder die Sicherung noch den Test auf einer Kopie.
Währenddessen: der Ablauf
Sie müssen nicht jede Zwischenversion installieren: Man spielt direkt die Dateien der Zielversion ein. Die Datenbank dagegen durchläuft jeden Schritt: Der Update-Assistent bietet die Migrationen einzeln an (16 auf 17, dann 17 auf 18 und so weiter), und Sie müssen alle der Reihe nach ausführen.
Unter Docker mit dem offiziellen Image ist es anders: Das automatische Update überspringt Migrationen, wenn man mehrere Versionen auf einmal wechselt. Lesen Sie zuerst Dolibarr unter Docker aktualisieren.
Per SSH, ohne Web-Assistenten, lassen sich dieselben Migrationen über die Kommandozeile starten, mit einer Falle, die den zweiten Schritt ohne jede Fehlermeldung blockiert: siehe Dolibarr über die Kommandozeile aktualisieren.
- Informieren Sie die Benutzer: Während des Updates darf niemand in Dolibarr arbeiten.
- Machen Sie die oben beschriebene vollständige Sicherung.
- Ersetzen Sie die Dolibarr-Dateien durch die der neuen Version, ohne
conf/conf.php, den Ordnercustom/oder den Dokumentenordner zu überschreiben. - Löschen Sie die Datei
install.lockim Dokumentenordner. Solange sie existiert, lässt sich der Assistent nicht öffnen, und das ist so gewollt. - Öffnen Sie die Adresse Ihres Dolibarr mit
/install/dahinter und führen Sie jeden angebotenen Migrationsschritt bis zur Zielversion aus. - Legen Sie
install.lockam Ende wieder an. Ohne diese Datei könnte jeder die Installation neu starten. - Öffnen Sie die Masken, die Sie täglich nutzen: eine Rechnung, ein Angebot, die PDF-Erzeugung, die Masken Ihrer externen Module.
Wenn sich etwas nicht mehr öffnet
Eine weiße Seite oder ein Fehler 500 direkt nach dem Update kommt in den allermeisten Fällen von
einem externen Modul. Das PHP-Fehlerprotokoll nennt die betroffene Datei: Liegt sie in custom/,
haben Sie den Verursacher.
Lässt sich die Modulverwaltung nicht mehr öffnen, kann man das Modul direkt in der Datenbank
deaktivieren. Passen Sie das Tabellenpräfix (standardmäßig llx_) und den Modulnamen an, und
sehen Sie sich zuerst an, was die Abfrage betrifft:
SELECT name, value FROM llx_const WHERE name LIKE 'MAIN_MODULE_MODULNAME%';
DELETE FROM llx_const WHERE name LIKE 'MAIN_MODULE_MODULNAME%';
Für den Weg zurück stellen Sie Datenbank und Dateien immer gemeinsam wieder her. Alte Dateien auf einer bereits migrierten Datenbank werden von Dolibarr nicht blockiert, und genau das ist gefährlich: Alles scheint zu funktionieren, bis eine Maske in eine Spalte schreibt, die sich geändert hat.
Die Versionstabelle 16 bis 24
| Version | Erschienen | PHP mindestens | Höchste vorgesehene PHP-Version | Entfernte Kernmodule |
|---|---|---|---|---|
| 16 | September 2022 | 5.6 | 8.1 | keine |
| 17 | März 2023 | 7.0 | 8.1 | keine |
| 18 | August 2023 | 7.0 | 8.1 | keine |
| 19 | Februar 2024 | 7.0 | 8.2 | keine |
| 20 | September 2024 | 7.0 | 8.2 | keine |
| 21 | März 2025 | 7.0 | 8.3 | Webservice-Client (WebServicesClient) |
| 22 | August 2025 | 7.0 | 8.4 | keine |
| 23 | März 2026 | 7.1 | 8.5 | Externe Website, OpenID Connect (jetzt eine Einstellung) |
| 24 | August 2026 | 7.1 | 8.5 | Reisekosten (Deplacement), Paybox |
PHP mindestens ist die Version, unterhalb derer der Update-Assistent nichts anbietet. Die höchste vorgesehene PHP-Version ist nur eine Warnschwelle: Darüber zeigt Dolibarr einen Hinweis, blockiert aber nicht. Ist eines der entfernten Module bei Ihnen noch aktiv, suchen Sie vor dem Update einen Ersatz.
Was sich ändert, Version für Version
Hier stehen nur Änderungen, die ein Unternehmen betreffen können, das Dolibarr nutzt, nicht solche, die nur die Entwickler des Kerns angehen.
- 16: Sensible Aktionen verlangen jetzt ein Sicherheitstoken, auch in Links. Ein altes Modul,
das es nicht mitgibt, bekommt seine Schaltflächen verweigert. Trigger mit dem Namen
…_UPDATEheißen jetzt…_MODIFY: Ein Modul oder eine Automatisierung, die darauf wartet, löst nicht mehr aus. - 17: In berechneten Zusatzfeldern heißt das aktuelle Objekt
$objectoffield. Die versteckte EinstellungMAIN_LIST_ALLOW_NOTESheißt jetztMAIN_LIST_HIDE_NOTES. - 18: Die Version, die auf unserem Prüfstand die meisten externen Module lahmgelegt hat (4 von 6 Ausfällen), weil Methoden des Kerns ihre Form geändert haben. Sensible Schlüssel in den Einstellungsseiten, etwa API-Schlüssel, werden jetzt verschlüsselt gespeichert.
- 19: Die offiziellen Docker-Images wechseln von PHP 8.1 auf PHP 8.2. In den Bedingungen von
Zusatzfeldern stehen die Variablen
$socund$rightnicht mehr zur Verfügung. - 20: Filter von Zusatzfeldern vom Typ Verknüpfung müssen in der neuen universellen
Filtersyntax (
feld:=:wert) geschrieben werden, nicht mehr in SQL. Ein Modul, das ein nicht deklariertes Array Eintrag für Eintrag befüllt ($this->liste['schlüssel'] = …), verliert diese Werte. Das steht nicht im ChangeLog: auf unserem Prüfstand festgestellt, dann nachgestellt. - 21: Die Vorlagenvariable
__MEMBER_CIVILITY__heißt jetzt__MEMBER_TITLE__. Die PHP-Erweiterungjsonwird Pflicht. - 22: Die versteckte Einstellung
STOCK_ALLOW_NEGATIVE_TRANSFERwird umgekehrt und inSTOCK_DISALLOW_NEGATIVE_TRANSFERumbenannt.GETPOSTist in Bedingungen von Zusatzfeldern verboten. - 23:
$objfunktioniert in berechneten Feldern und Bedingungen nicht mehr; schreiben Sie$objectoffield, verlangt seit der 17. Das ChangeLog kündigt auch das Ende von$objectan, es funktioniert in 23.0.4, 24.0.1 und 24.0.2 aber noch: Ersetzen Sie es jetzt. Verkettung ist in berechneten Feldern standardmäßig abgeschaltet. - 24: Die Variable
__MYCOUNTRY_ID__entfällt, ersetzt durch__MYCOMPANY_COUNTRY_ID__. Die API-Anmeldung mit Benutzername und Passwort ist standardmäßig aus. - 24, Falle beim unveränderbaren Protokoll (Modul BlockedLog), wenn Sie es seit einer alten Version nutzen: Liegt dessen Schlüssel noch im Klartext in der Datenbank, lässt sich in 24.0.0 oder 24.0.1 keine Rechnung mehr freigeben (Meldung #40153). Die Fehlermeldung zeigt dann den Schlüssel im Klartext: Teilen Sie keine Screenshots davon. Die 24.0.2, am 2. Oktober 2026 auf SourceForge veröffentlicht, am 4. Oktober auf dolibarr.org aber noch nicht angekündigt, behebt diesen Fall. Getestet: Die Freigabe funktioniert wieder, und der unveränderte Schlüssel wird bei der ersten freigegebenen Rechnung neu verschlüsselt. Der Update-Assistent rührt ihn nicht an. Bis zur Ankündigung der 24.0.2 lassen Sie diesen Punkt vor dem Wechsel auf 24 prüfen.
Wie diese Angaben ermittelt wurden
- Die PHP-Versionen stammen aus dem Installationsprogramm jeder Version (
install/check.php), nicht aus der Dokumentation, die manchmal abweicht. - Die entfernten Module stammen aus dem Vergleich der Kernmodule, Version für Version.
- Die Änderungen stammen aus dem offiziellen ChangeLog von Dolibarr.
- Die Ausfallzahlen stammen von 45 freien Modulen, die unter Docker tatsächlich aktualisiert wurden, mit dem offiziellen Assistenten, auf den offiziellen Images von Dolibarr 16 bis 24.
Diese Tabelle wird mit jeder neuen Version aktualisiert.
Hilfe holen
Wenn Sie diesen Eingriff an Ihrem Rechnungswerkzeug lieber nicht selbst durchführen, ist genau dafür das Paket Abgesichertes Update da: Ihre Instanz wird kopiert, das Update wird an der Kopie geprobt, bis es durchläuft, Rechnungen, PDFs und Module werden geprüft, und erst dann wird umgestellt. Wenn Sie zuerst wissen möchten, wo Sie stehen, prüft die Diagnose für 90 € Ihre Version, Ihr PHP und Ihre Module, und ihr Preis wird angerechnet, wenn Sie das Paket danach bestellen.