5

Django n00b 在这里。我想知道,django 固定装置是备份数据的可靠方法,而不是实际备份数据库吗?如果我的数据库非常大怎么办?

谢谢。

4

2 回答 2

4

Fixtures 旨在容纳添加新模型/整个应用程序后应填充到数据库中的数据。这确实是为了将您的代码不可避免地从开发转移到生产,在同步数据库后您将需要这些相同的数据立即可用。

现在,基于此功能,您大概可以创建一个基本夹具,该夹具基本上由数据库备份组成,但这并不是夹具的真正用途。

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

于 2011-05-24T18:10:18.323 回答
0

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

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

例如,如果您使用 Chris Patt 的方法并且您的数据库是 postgres,那么对我来说pg_dumpall,在 6GB 数据库上花费的时间不到 30 秒。datadump如果您没有足够的 RAM,则会在交换中搅动数小时。

于 2013-11-07T23:41:23.287 回答