Odoo-Datenbank exportieren und wiederherstellen
Kurz gesagt
Auf einem eigenen Server liegt die Datenbankverwaltung unter /web/database/manager; die Beschriftungen, Formate und Meldungen stammen aus dem öffentlichen Community-Zweig 20.0, für Odoo Enterprise auf eigenem Server ist die Oberfläche nicht belegt. Dort sichert die Schaltfläche Backup eine Datenbank als ZIP-Datei, standardmäßig samt Filestore, und Restore Database spielt eine ZIP-Datei in eine neue, leere Datenbank ein. Beide Wege verlangen das Master-Passwort (admin_passwd). Die Dokumentation rät, die Verwaltung auf internetnahen Servern abzuschalten (list_db = False) und Sicherungen über Befehle zu erstellen.
Das Wichtigste
- Die Datenbankverwaltung liegt laut dem Community-Zweig 20.0 unter /web/database/manager und ist durch das Master-Passwort admin_passwd geschützt.
- Backup erzeugt laut dem Community-Zweig 20.0 eine ZIP-Datei mit dump.sql und manifest.json; der Ordner filestore kommt nur dazu, wenn das vorbelegte Kästchen Include filestore gesetzt ist. Das Format pg_dump custom format enthält keinen Filestore.
- Restore Database legt laut dem Community-Zweig 20.0 eine neue Datenbank an; ein schon vergebener Zielname führt zum Abbruch.
- Der Befehl odoo-bin db load nimmt laut dem Community-Zweig 20.0 nur ZIP-Dateien an; Rohdumps spielen Sie mit pg_restore ein.
- Odoo Online lädt Sicherungen als ZIP-Datei herunter; eingespielt werden sie auf einem eigenen Server über die Datenbankverwaltung.
- Odoo.sh bietet im Reiter Backups Download, Wiederherstellung, manuelle Sicherung und Datenbankimport.
Die Datenbankverwaltung ist die Oberfläche, mit der eine eigene Odoo-Installation Datenbanken anlegt, sichert, einspielt und löscht. Diese Anleitung zeigt die Klickwege und die Befehle, die dasselbe tun, mit den Warnungen aus der Dokumentation der Version 20.0 und aus dem Quellcode. Die Beschriftungen, Formate und Meldungen der Verwaltung sind dem öffentlichen Community-Zweig 20.0 entnommen; für Odoo Enterprise auf eigenem Server ist die Oberfläche nicht belegt. Odoo 20 wurde im September 2026 veröffentlicht.
Was Sie vorab brauchen
- Einen eigenen Server mit Ihrer Odoo-Installation; bei Odoo Online und Odoo.sh führen eigene Oberflächen zum Ziel.
- Das Master-Passwort aus der Zeile
admin_passwdder Konfigurationsdatei (/etc/odoo.confbei Paketinstallationen unter Linux,~/.odoorcbei Quellinstallationen,c:\Program Files\Odoo{VERSION}\server\odoo.confunter Windows). - Für die Kommandowege
pg_dump,psqlundpg_restoreaus Ihrer PostgreSQL-Installation. - Einen Ablageort außerhalb des Servers; die Update-Anleitung verlangt, die Sicherung vor Änderungen an der Installation auf einem anderen Rechner zu verwahren.
- Für das Einspielen einen freien Datenbanknamen; erlaubt sind Buchstaben, Zahlen, Unterstrich, Bindestrich und Punkt, erstes Zeichen Buchstabe oder Zahl (Modul
db, Zweig 20.0). - Optional die Entscheidung, ob die eingespielte Kopie neutralisiert werden soll.
Wo die Verwaltung liegt und wann sie geschlossen ist
Öffnen Sie /web/database/manager auf Ihrem Server. Die Seite listet die Datenbanken; hinter jeder Zeile stehen Backup, Duplicate und Delete, unter der Liste Create Database, Restore Database und Set Master Password. Die Vorlage des Community-Zweigs 20.0 beschriftet die Seite englisch; die deutschsprachige Dokumentation nennt dieselben Schaltflächen Master-Passwort einrichten und Fortfahren. Datenbanken, deren Version nicht zur laufenden Odoo-Reihe passt, markiert die Liste mit einem Warnsymbol. Jede Aktion verlangt das Master-Passwort, das Odoo mit admin_passwd vergleicht; für den Bildschirm braucht der PostgreSQL-Benutzer das Recht createdb.
Die Dokumentation empfiehlt dringend, die Verwaltung auf jedem internetnah erreichbaren System abzuschalten. Sie sei ein Entwicklungs- und Demo-Werkzeug, nicht für den Produktivbetrieb und nicht für große Datenbanken, und könne an Speichergrenzen stoßen. Abschalten heißt list_db = False in der Konfiguration oder --no-database-list beim Start; danach zeigt die Seite nur noch den Hinweis auf die abgeschaltete Verwaltung, und die Datenbankauswahl für Anwender entfällt. Sorgen Sie deshalb dafür, dass db_name und, wo nötig, dbfilter die Datenbank je Hostname bestimmen. Soll die Seite erreichbar bleiben, blockieren Sie im Proxy alle Adressen unter /web/database außer /web/database/selector und setzen ein zufällig erzeugtes Master-Passwort.
Steht admin_passwd noch auf admin, meldet die Seite, dass die Verwaltung nicht geschützt ist, und die Fenster füllen selbst ein erzeugtes Passwort ein; Odoo übernimmt es beim Ausführen und schreibt es in die Konfigurationsdatei.
Auf den Cloud-Angeboten liegen die Wege anders. Bei Odoo Online lädt Download Backup im Datenbankmanager des Odoo-Kontos eine ZIP-Datei; ist die Option gesperrt, ist die Datenbank zu groß, und der Odoo-Support nennt eine Alternative. Bei Odoo.sh bietet der Reiter Backups der Produktion Herunterladen, Wiederherstellen, eine manuelle Sicherung und den Datenbankimport; der Import nimmt Archive aus der Verwaltung unter /web/database/manager, aus dem Odoo-Online-Manager und aus Odoo.sh selbst an.
Schritt für Schritt: sichern und einspielen
Schritt 1: Liste öffnen
Rufen Sie /web/database/manager auf. Ergebnis: Ihre Datenbanken stehen mit ihren Namen in der Liste. Erscheint stattdessen der Hinweis auf die abgeschaltete Verwaltung, arbeiten Sie mit den Schritten 3 und 5.
Schritt 2: Über die Oberfläche sichern
Klicken Sie in der Zeile Ihrer Datenbank auf Backup, tragen Sie das Master-Passwort ein und wählen Sie unter Backup Format zip oder pg_dump custom format (without filestore); das Kästchen Include filestore ist nur beim Format zip sichtbar und vorbelegt. Nach Backup lädt der Browser die Datei; Odoo benennt sie nach dem Muster Datenbankname_Zeitstempel.Format mit Zeitstempel in UTC, im Format zip also Datenbankname_Zeitstempel.zip, im Custom-Format Datenbankname_Zeitstempel.dump. Die ZIP-Datei enthält immer dump.sql und manifest.json; den Ordner filestore mit den Anhängen legt Odoo nur dazu, wenn Include filestore gesetzt ist. Das Custom-Format enthält nur die Datenbank. Für große Datenbanken ist die Oberfläche laut Dokumentation nicht gedacht.
Schritt 3: Per Befehl sichern
odoo-bin db dump <datenbank> /pfad/sicherung.zip
odoo-bin db dump <datenbank> --format dump --no-filestore /pfad/sicherung.dump
Ohne Pfadangabe schreibt der Befehl nach stdout. Intern ruft er pg_dump --no-owner auf. Im Format zip entsteht ein SQL-Text; --no-owner bewirkt dort, dass er keine Befehle zum Setzen der Eigentümerschaft enthält, sodass beim Ausführen der verbindende Benutzer Eigentümer aller Objekte wird. Nach der PostgreSQL-Dokumentation (18, pg_dump) greift der Schalter beim Archivformat dagegen nicht: Odoo erzeugt das Format dump mit pg_dump --format=c, und in einem Archiv bleiben die Eigentümerangaben enthalten. Ob sie gesetzt werden, entscheidet erst pg_restore; standardmäßig tut es das, mit pg_restore --no-owner nicht.
Schritt 4: Über die Oberfläche einspielen
Klicken Sie unter der Liste auf Restore Database und füllen Sie Master Password, File (die ZIP-Datei), Database Name und bei Bedarf das Kästchen Neutralize aus. Darunter steht die Frage „This database might have been moved or copied” mit den Antworten „This database is a copy” (vorbelegt) und „This database was moved”; mit Continue startet der Vorgang.
Odoo legt dafür eine neue, leere Datenbank an: Ein vergebener Zielname führt zum Abbruch, überschrieben wird nichts. Die Antwort entscheidet, ob die Datenbank ihre Kennung (dbuuid) behält oder eine neue erhält; der Formularhinweis nennt als Grund Konflikte zwischen Datenbanken. Wählen Sie die Kopie, wenn die Originaldatenbank weiterlaufen soll. Das Neutralisieren schaltet geplante Aktionen, ausgehende E-Mails, Banksynchronisation, Zahlungsanbieter, Versandarten und die Indexierung durch Suchmaschinen ab.
Schritt 5: Per Befehl einspielen
odoo-bin db load <datenbank> /pfad/sicherung.zip
odoo-bin db load <datenbank> /pfad/sicherung.zip --force --neutralize
Ohne Datenbanknamen nimmt Odoo den Dateinamen ohne Endung; die Datei darf auch eine URL sein. --force löscht ein vorhandenes Ziel, --neutralize neutralisiert die Kopie, --move behält die Kennung statt einer neuen. Im Community-Zweig 20.0 prüft der Befehl, ob die Datei ein ZIP-Archiv ist, und bricht sonst mit dem Hinweis ab, dass Rohdumps mit pg_restore und SQL-Skripte mit psql einzuspielen sind.
Befehle und Klickwege im Überblick
| Aufgabe | Klickweg in der Verwaltung | Befehl | Warnung |
|---|---|---|---|
| Datenbank mit Anhängen sichern | Backup, Format zip, Include filestore, Backup |
odoo-bin db dump <DB> <Datei.zip> |
Oberfläche nicht für internetnahe oder große Datenbanken gedacht |
| Nur die Datenbank sichern | Backup, Format pg_dump custom format |
odoo-bin db dump <DB> --format dump <Datei> |
kein Filestore; über die Oberfläche nicht wieder einspielbar |
| ZIP-Sicherung einspielen | Restore Database, File, Database Name, Continue | odoo-bin db load <DB> <Datei.zip> |
Zielname muss frei sein; nur ZIP-Archive |
| Rohdump einspielen | nicht vorgesehen | pg_restore -d <DB> <Datei.dump> |
Rollen und leere Datenbank vorher anlegen; Filestore fehlt; setzt die Eigentümerangaben aus dem Archiv und braucht dafür einen passenden Benutzer, sonst --no-owner |
| Kopie für Tests | Duplicate mit Kästchen Neutralize | odoo-bin db duplicate <Quelle> <Ziel> --neutralize |
Zielname muss frei sein; Neutralisieren stoppt geplante Aktionen und E-Mails |
| Datenbank löschen | Delete | odoo-bin db drop <DB> |
entfernt Datenbank und Filestore; die Vorlage des Fensters nennt keinen weiteren Hinweis |
Ein Umbenennen enthält die Vorlage der Verwaltung im Zweig 20.0 nicht; dafür steht odoo-bin db rename <alt> <neu> bereit. Skripte, die über den db-Dienst der alten XML-RPC- und JSON-RPC-Schnittstellen sicherten, laufen in Odoo 20 nicht mehr; die HTTP-Adressen der Verwaltung (/web/database/backup, /web/database/restore) gibt es weiter, sie verlangen das Master-Passwort.
So prüfen Sie das Ergebnis
Nach dem Sichern: Prüfen Sie den Inhalt der ZIP-Datei (dump.sql, manifest.json und, falls mitgesichert, filestore) und legen Sie die Datei außerhalb des Servers ab. Nach dem Einspielen: Öffnen Sie die neue Datenbank, melden Sie sich an und prüfen Sie Stichproben aus mehreren Apps samt einem Datensatz mit Anhang sowie die Liste der installierten Apps; eine neutralisierte Kopie trägt oben einen roten Hinweisbalken. Die dauerhafte Kontrolle bleibt der Wiederherstellungstest nach Odoo sichern: Backup-Strategie und Wiederherstellung.
Wenn etwas nicht klappt
| Symptom | Ursache | Lösung |
|---|---|---|
| Die Seite meldet nur, dass die Verwaltung abgeschaltet ist | list_db = False oder Start mit --no-database-list |
Befehle nutzen oder den Eintrag bewusst entfernen und db_name beziehungsweise dbfilter prüfen |
| Das Master-Passwort ist unbekannt | admin_passwd wurde verlegt oder geändert |
Nach der Dokumentation die Zeile auf ein vorläufiges Passwort ändern, den Dienst neu starten, /web/database/manager öffnen und Set Master Password ausfüllen; die Zeile nicht mit einem Semikolon auskommentieren |
| Das Fenster erzeugt selbst ein Passwort | admin_passwd steht noch auf admin |
Ausführen und das angezeigte Passwort notieren; Odoo schreibt es in die Konfigurationsdatei |
| Das Einspielen bricht mit „already exists” ab | Zielname ist schon belegt | Anderen Namen wählen; die Oberfläche löscht nichts von selbst |
| Das Einspielen bricht ab, weil die Datei kein ZIP ist | Rohdump statt ZIP-Sicherung | Custom-Format mit pg_restore, einen SQL-Dump mit psql einspielen |
| Anhänge fehlen nach dem Einspielen | Die Sicherung enthielt keinen Filestore | ZIP-Sicherung mit Filestore verwenden; --no-filestore und das Format dump enthalten ihn nicht |
| Das Einspielen eines Rohdumps bricht bei Befehlen zur Eigentümerschaft ab | Eigentümerangaben aus dem Archiv werden von pg_restore ausgeführt; die Befehle scheitern, wenn die Verbindung nicht von einem Superuser oder dem bisherigen Eigentümer kommt |
Mit pg_restore --no-owner einspielen oder die Verbindung mit dem passenden Benutzer herstellen |
| Das Anlegen einer Datenbank scheitert in PostgreSQL | Dem PostgreSQL-Benutzer fehlt das Recht createdb |
Dem PostgreSQL-Benutzer das Recht createdb geben; die Kommandowege db load, db duplicate und db init legen die Datenbank über denselben Benutzer an und brauchen es ebenso |
Wann Sie Hilfe holen sollten
Beim Wechsel des Hostingmodells: Eine Odoo-Online-Datenbank laden Sie als Sicherung herunter und spielen sie auf einem eigenen Server über die Verwaltung ein. Läuft sie auf einer Zwischenversion, muss sie vorher auf die nächste Hauptversion aktualisiert werden, weil eigene Server und Odoo.sh Zwischenversionen nicht unterstützen. Für den Weg zu Odoo Online erstellen Sie nach der Dokumentation eine Kopie ohne Fremdmodule, sichern sie samt Filestore und legen sie über ein Support-Ticket vor. Den Ablauf beschreibt der Artikel Hostingmodell wechseln. Bei mehreren Datenbanken, abgeschalteter Verwaltung oder großen Dateien ziehen Sie den Systemadministrator hinzu. Welche Pflichten beim Umgang mit personenbezogenen Daten in einer Kopie gelten, behandelt der Artikel DSGVO in Odoo umsetzen.