Restoring a Django Backup

It took me a little while to figure out the correct sequence for restoring a Django backup. If you have borked your database, this is how to put it back together.

  1. Drop the old database.
  2. Create a new database.
  3. python manage.py dbrestore. Retrieve the data and insert it into appropriate tables. This will restore the most recent backup.
  4. python manage.py migrate. I only do this if I’m restoring data from my production system into a development environment where there are new migrations.

And you’re back! It seems pretty trivial, but I hit my head against this a number of times and got very frustrated when things just wouldn’t work. Follow this recipes and you’re good.

As a side note, if it’s taking a long, long, long time to restore your backup then you can add the following SQL code to the backup file:

-- Near the top of the file.
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, AUTOCOMMIT = 0;
-- Near the bottom of the file.
SET AUTOCOMMIT = @OLD_AUTOCOMMIT;
COMMIT;