Frequently asked questions
The questions asked most often about Automatic Database Backup, answered.
Does this work on Odoo Online (SaaS)? No, and please do not buy it for one. A module on Odoo Online has no filesystem access, so there is nowhere for it to write. Odoo backs those databases up itself.
Does it work on Odoo.sh? Odoo.sh already takes platform backups. This module is useful there only if you want an extra copy pushed to your own SFTP server.
Does it need Enterprise? No. Community and Enterprise both work.
Where do the backups go? A folder on the Odoo server, an SFTP account, or both - one destination each. Nothing is sent anywhere you have not configured.
Can I back up more than one database? Yes, one destination per database, as long as this Odoo server can reach them with the same PostgreSQL credentials.
ZIP or SQL dump? ZIP, unless you have a specific reason not to. Only ZIP contains the filestore, so only a ZIP restores your attachments, images and logos. An SQL dump restores a database where every attachment is missing, and nothing can recover them from that file.
How long does a backup take? Seconds on a small database, minutes on a large one. It loads the server while it runs, so schedule it for a quiet hour.
Why do I not get an email when a backup succeeds? Because you would stop reading it. A nightly "it worked" message is deleted unread within a week, and after that so is the one that says it failed. Failures are emailed; successes are visible on the Destinations screen.
How do I know it ran, then? Settings - Database Backup - Destinations shows the date and result of the last run for each one. Green with a recent date means you are backed up.
Can something else monitor it? Yes. db.backup.run is an ordinary model, readable through Odoo's standard API by any user in the Backup: History Only group. Query the most recent run for each destination.
What does "verify" actually check? That the file exists, is not empty, opens as a valid archive with no corrupt entries, and contains a database dump. That catches the two failures that actually happen: a full disk producing a truncated file, and a dump that died half-way. It does not prove the database inside will come up - only a real restore proves that, which is why the documentation asks you to do one every quarter.
Will retention delete my other files? No. It only removes files whose name starts with the configured database name, carries a timestamp in this module's own format, and ends .zip or .sql. A test puts five plausible-looking foreign files in the folder and asserts all five survive.
Why is one of my backups called mydb_2026-08-29_02-00-00_2.zip? Because a second backup landed in the same second as the first — usually a manual run on top of the scheduled one. The name carries the time only to the second, so the newcomer takes a _2 suffix rather than overwriting what is already there. Retention understands the suffix and ages those files out normally.
Does retention run if the backup failed? No. Deleting yesterday's good backup because today's failed is exactly the wrong moment to be tidy.
Can it restore? No, deliberately. Restoring destroys a database and belongs at a command line taken on purpose, not behind a button somebody can click by accident. See RESTORING.md for the exact commands.
Can I upload to Google Drive, Dropbox or S3? Not in this version. Local and SFTP only. Both are dependency-light and work anywhere; the cloud providers each need their own SDK, credentials flow and token refresh. If you need one, write to info@technovision.dev.
SFTP says paramiko is missing but I installed it. Almost always installed into the wrong Python. Install it into the same environment Odoo runs in and restart Odoo.
What happens to my backup files if I uninstall the module? Nothing. They are ordinary files in your folder and stay exactly where they are.