Title: Database Export Genie
Author: mansoormunib
Published: <strong>October 19, 2026</strong>
Last modified: October 21, 2026

---

Search plugins

![](https://ps.w.org/database-export-genie/assets/banner-772x250.jpg?rev=3757657)

![](https://ps.w.org/database-export-genie/assets/icon.svg?rev=3757657)

# Database Export Genie

 By [mansoormunib](https://profiles.wordpress.org/mansoormunib/)

[Download](https://downloads.wordpress.org/plugin/database-export-genie.3.0.1.zip)

 * [Details](https://wordpress.org/plugins/database-export-genie/#description)
 * [Reviews](https://wordpress.org/plugins/database-export-genie/#reviews)
 *  [Installation](https://wordpress.org/plugins/database-export-genie/#installation)
 * [Development](https://wordpress.org/plugins/database-export-genie/#developers)

 [Support](https://wordpress.org/support/plugin/database-export-genie/)

## Description

 * One page, one button, a list of your backups.
 * Runs in the background: leave the page or close the tab and the backup keeps 
   going.
 * Works on shared hosting: no mysqldump, no exec(), handles short timeouts and 
   low memory limits.
 * Checks disk space before starting, and stops cleanly if the disk fills.
 * Every backup is verified before it’s shown as ready: the zip is re-read and every
   compressed chunk is checked against the SQL that was written.
 * Download or delete backups at any time. Delete the whole backup folder in one
   click.
 * Standard .sql inside. Restore with phpMyAdmin, Adminer, the mysql command or 
   WP-CLI. No paywall, no Pro version.
 * Works with MySQL, MariaDB, Percona, Amazon Aurora, SQLite (WordPress Playground/
   SQLite Database Integration) and HyperDB / LudicrousDB setups.
 * Multisite: back up the whole network, or one site (optionally with its users,
   optionally renamed for a standalone install).
 * No emails, no upsells, no tracking. The only outbound request is to your own 
   site (to keep the backup running in the background).

**Advanced options** (hidden behind one checkbox): a custom backup name, and a table
picker so you can export a few tables, or just one.

#### What’s included

Every table that starts with your WordPress table prefix. Nothing inside those tables
is skipped, including transients and options that start with an underscore. The 
one exception is this plugin’s own progress data (`dbmg_*` rows in the options table),
which would be meaningless after a restore. Tables from other applications that 
share the database are listed under “Other tables” in Advanced options and are only
exported if you tick them.

#### WP-CLI

 * `wp dbmg create [--description=<text>] [--tables=<list>] [--site=<id>] [--include-
   users] [--convert-prefix] [--run]`
 * `wp dbmg run` — finish the running backup in this process (useful on hosts that
   block background requests, or from a system cron).
 * `wp dbmg status`, `wp dbmg list`, `wp dbmg delete <id>...`, `wp dbmg cancel`

### Future ideas

Not planned for now, listed here so they don’t creep in: restore from the dashboard,
file backups, schedules, cloud destinations, email notifications.

### Credits

The SQL export engine follows the design of WP Migrate Lite’s table exporter (GPLv2
or later): keyset pagination over primary and compound keys, hex-encoded binary 
columns and multi-row INSERT buffering. This plugin is not affiliated with or endorsed
by its authors.

The genie icon is based on the genie from Noto Emoji, copyright Google LLC, used
under the Apache License 2.0 (head and turban redrawn) (https://www.apache.org/licenses/
LICENSE-2.0, source: https://github.com/googlefonts/noto-emoji).

## Screenshots

[⌊The backup list: one button, one table.⌉⌊The backup list: one button, one table
.⌉[

The backup list: one button, one table.

[⌊A backup in progress, with a progress bar for every table.⌉⌊A backup in progress,
with a progress bar for every table.⌉[

A backup in progress, with a progress bar for every table.

[⌊Create a backup: disk-space check and the optional table picker.⌉⌊Create a backup:
disk-space check and the optional table picker.⌉[

Create a backup: disk-space check and the optional table picker.

## Installation

 1. Upload the `database-export-genie` folder to `/wp-content/plugins/`, or install
    it from the Plugins screen.
 2. Activate it (Network Activate on multisite).
 3. Go to **Tools  Database Backups** (multisite: **Network Admin  Settings  Database
    Backups**) and click **Create backup**.

## FAQ

### Who can create, download and delete backups?

Only users with the Administrator role (on multisite: Super Admins). Other roles
never see the page, even if a role editor gave them the “manage_options” capability,
because a database backup contains every password hash and secret key on the site.
WP-CLI commands work for anyone with shell access to the server.

### How do I restore a backup?

Unzip it. Inside you’ll find `database.sql` (or `database.part-001.sql`, `database.
part-002.sql`, … for large sites) and `IMPORT-README.txt`, which explains each option:

 * phpMyAdmin or Adminer: Import  choose the file (import parts in numeric order).
 * Command line: `mysql -u USER -p DBNAME < database.sql`
 * WP-CLI: `wp db import database.sql`

Multiple parts can be joined first: `cat database.part-*.sql > database.sql` (Windows:`
copy /b database.part-*.sql database.sql`). Moving to a new domain? Run a serialized-
safe search-replace after importing, for example `wp search-replace 'https://old.
example' 'https://new.example' --all-tables`.

### Where are backups stored? Can anyone download them?

In `wp-content/dbmg-backups-<random>/` (or the uploads folder if wp-content isn’t
writable). Only administrators can download a backup, through wp-admin with a login
and a per-link security check; the zip’s own URL is never shown. The folder is blocked
from the web in several independent ways, and each one fails closed:

 * `.htaccess` denies every request on Apache 2.2 and 2.4 and LiteSpeed, plus a 
   rewrite rule for OpenLiteSpeed. If the host doesn’t allow a directive, Apache
   answers 500 for the folder, which still serves nothing.
 * `web.config` blocks every file on IIS (request filtering).
 * An empty `index.html` stops folder listings on any server.
 * Backup files are owner-only (0600). Where the web server runs as a different 
   user than PHP (most control panels and managed Nginx hosts), it can’t read them
   even without a rule.
 * The folder name and every file name contain long random tokens (more than 150
   bits together).

The plugin checks all of this from the outside: it puts a test `.zip`, `.sql` and`.
json` file in the folder and requests them over HTTP. If any of them comes back,
the Storage section and Tools  Site Health show a warning with the exact fix for
your server.

The safest setup stores backups outside the web root. Add this to `wp-config.php`(
the plugin suggests a path when it finds one):

    ```
    define( 'DBMG_BACKUP_DIR', '/home/you/private/db-backups' );
    ```

### I use Nginx. What should I add?

Nginx ignores `.htaccess`. Add this to your server block and reload Nginx (the plugin
shows the same snippet with your real path if it finds the folder public):

    ```
    location ^~ /wp-content/dbmg-backups- { deny all; }
    ```

Use `^~` as shown, not a regular-expression location: Nginx uses the first regex
location that matches, so an earlier rule such as `location ~* \.(zip|gz)$` would
win over a regex deny.

If you use the `dbmg_download_xsendfile` filter (X-Accel-Redirect / X-Sendfile),
the web server itself reads the zip, so also return a mode it can read from the `
dbmg_file_mode` filter, for example `0640`.

### Does the backup really keep running if I close the tab?

Yes, on most servers: the backup runs in short server-side steps that start each
other. If your host blocks that, WP-Cron takes over; if WP-Cron is also disabled,
the backup advances whenever any WordPress admin page is open (the plugin tells 
you before you start). You can always finish it with `wp dbmg run`.

### Is the backup a point-in-time snapshot?

Small sites (under about 20 MB of SQL on MySQL/MariaDB) are exported inside a single
consistent snapshot when the whole export finishes in one step, which is the usual
case. Larger backups are exported in chunks while the site stays live, so rows written
during the backup may or may not be included — the same trade-off every PHP-based
backup plugin makes. `backup-info.json` inside the zip says which kind you got. 
For a frozen copy of a busy store, put the site in maintenance mode first.

### My host has a 30 second time limit and 64 MB of memory. Will it work?

That’s what it’s built for. Each step uses at most 40% of `max_execution_time` (
never more than 20 seconds), stops at 70% of the memory limit, and resizes its batches
automatically. If a step is killed anyway, the next one resumes from the last saved
point and throws away any half-written data.

### What happens when I uninstall the plugin?

All of its settings are removed. Your backups are kept, unless you ticked “Also 
delete all backups when the plugin is uninstalled” in the Storage section — deleting
someone’s only backup silently would be worse than leaving files behind. If you 
install the plugin again later, it finds the backups it left behind and lists them
again. Deactivating the plugin cancels a running backup and keeps finished ones.

### Which databases are not supported?

PostgreSQL (PG4WP), SQL Server and other non-MySQL servers. The page tells you if
it detects one.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Database Export Genie” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ mansoormunib ](https://profiles.wordpress.org/mansoormunib/)

[Translate “Database Export Genie” into your language.](https://translate.wordpress.org/projects/wp-plugins/database-export-genie)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/database-export-genie/),
check out the [SVN repository](https://plugins.svn.wordpress.org/database-export-genie/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/database-export-genie/)
by [RSS](https://plugins.trac.wordpress.org/log/database-export-genie/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.1

 * New plugin directory banner and icon. No code changes.

#### 3.0.0

 * First release.

## Meta

 *  Version **3.0.1**
 *  Last updated **6 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [backup](https://wordpress.org/plugins/tags/backup/)[database backup](https://wordpress.org/plugins/tags/database-backup/)
   [Export database](https://wordpress.org/plugins/tags/export-database/)[sql](https://wordpress.org/plugins/tags/sql/)
   [zip](https://wordpress.org/plugins/tags/zip/)
 *  [Advanced View](https://wordpress.org/plugins/database-export-genie/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/database-export-genie/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/database-export-genie/reviews/)

## Contributors

 *   [ mansoormunib ](https://profiles.wordpress.org/mansoormunib/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/database-export-genie/)