django是否拥有可靠的数据库备份?

时间:2011-05-24 17:52:40

标签: database django django-fixtures

Django n00b在这里。我想知道,django是一种可靠的方式来备份我的数据,而不是实际备份数据库吗?如果我的数据库非常大会怎么样?

感谢。

2 个答案:

答案 0 :(得分:4)

Fixtures用于存放一旦添加新模型/整个应用程序后应填充到数据库中的数据。这实际上是您的代码从开发到生产的不可避免的移动,在同步数据库之后,您将需要立即获得相同的数据。

现在,基于此功能,您可能会创建一个基本上由数据库备份组成的基础夹具,但实际上并不是用于什么夹具。

最好的办法是遵循标准做法,即通过使用cron或其他一些调度应用程序来保持数据库的一致和频繁的SQL备份。

答案 1 :(得分:0)

只要数据库很小,使用fixture作为数据库备份就可以正常工作。灯具的问题在于它们需要很长时间才能进行转储和加载。如果您的模型和应用程序不断变化,这意味着每个syncdb都必须为您的所有应用重新加载所有数据。您可以通过不将它们放在fixtures目录中来避免这种情况。然后,您必须在更改模型时有选择地(手动)加载所需的灯具。因此,对于模型发生重大变化的大型数据库或项目,最好使用south来管理迁移并避免数据库重新加载,无论是否在fixtures或sql转储中维护备份。

在django 1.4中datadumpdataload甚至不可能,除非你的每个模型(表格)的数据完全适合RAM,这意味着你可能不会无论如何都要为你的数据库使用持久存储。

例如,如果您使用Chris Patt的方法并且您的数据库是postgres,那么对我来说pg_dumpall在6GB数据库上只需不到30秒。如果你没有足够的RAM,datadump会在几个小时内换掉。