我有一个使用Postgres数据库的Django应用程序.我需要能够备份和恢复数据库,以确保没有数据丢失,并且能够在测试期间将数据从生产服务器复制到开发服务器.

似乎有几种不同的方法可以做到这一点:

  1. 直接与数据库交互即可.所以,对于博士后,我可能会用pg_dumpallpsql写一个脚本.

  2. 使用Django附带的sqlclear/sqlall命令.

  3. 使用Django附带的dumpdata/loaddata命令.因此,从要备份的数据库创建新的装置,然后将它们加载到要恢复的数据库中.

  4. 使用像django-dbbackup这样的Django插件.

我真的不明白这些不同技术的优缺点.

我突然想到:选项1是特定于数据库的,选项3似乎更适合设置初始数据.但是我仍然不确定选项4比选项2有什么优势.

推荐答案

对于常规备份,我会 Select 选项1,使用PostgreSQL自己的本地工具,因为它可能是最高效的.

我认为,选项2主要涉及创建表和加载初始数据,因此不适合备份.

选项3可用于备份,如果您需要迁移到不同的数据库平台,则选项3将特别有用,因为数据以非SQL形式转储,即Django理解的JSON.

选项4该插件似乎正在使用数据库自己的备份工具(根据选项1),但还提供了将备份推送到Amazon S3或Dropbox中的云存储的帮助

Django相关问答推荐

如何在创建对象后立即运行一次代码?

Django如何在没有ctrl点击的情况下允许多选

如何在 createsuperuser 中实例化表

表单集中的每个表单验证

设置 SECURE_HSTS_SECONDS 可以不可逆转地 destruct 您的网站?

文档中的 Mongoengine creation_time 属性

在 Django 中,您可以向查询集添加方法吗?

将现有 auth.User 数据迁移到新的 Django 1.5 自定义用户模型?

模型 Django 中的 ID 字段

如何在python中遍历httprequest post变量

使用 lambda 作为属性的默认值时,Django 1.7.1 Makemigrations 失败

Django:获取上次用户访问日期

Django:使用 ModelForm 编辑现有数据库条目

Matplotlib - Tcl_AsyncDelete:异步处理程序被错误的线程删除?

Django中的自定义排序

Django将HttpResponseRedirect返回到带有参数的url

刷新时重新提交的django表单

RemovedInDjango18Warning:不推荐创建没有fields属性或 exclude属性的 ModelForm

Django 中的 Python 日志(log)记录

Django中'related_name'和'related_query_name'属性之间的区别?