Django n00b 在这里。我想知道,django 固定装置是备份数据的可靠方法,而不是实际备份数据库吗?如果我的数据库非常大怎么办?
谢谢。
Django n00b 在这里。我想知道,django 固定装置是备份数据的可靠方法,而不是实际备份数据库吗?如果我的数据库非常大怎么办?
谢谢。
Fixtures 旨在容纳添加新模型/整个应用程序后应填充到数据库中的数据。这确实是为了将您的代码不可避免地从开发转移到生产,在同步数据库后您将需要这些相同的数据立即可用。
现在,基于此功能,您大概可以创建一个基本夹具,该夹具基本上由数据库备份组成,但这并不是夹具的真正用途。
您最好的选择是遵循标准做法,通过使用 cron 或其他一些调度应用程序来保持数据库的一致和频繁的 SQL 备份。
只要您的数据库很小,就可以使用固定装置作为数据库备份。固定装置的问题是它们需要很长时间才能转储和加载。如果您的模型和应用程序不断变化,这意味着每个 syncdb 都必须为您的所有应用程序重新加载所有数据。您可以通过不将它们放在fixtures 目录中来避免这种情况。然后,您必须在更改模型时有选择地(手动)加载所需的夹具。因此,对于模型不断变化的大型数据库或项目,最好使用它south
来管理您的迁移并避免数据库重新加载,无论您是否在固件或 sql 转储中维护备份。
在 django 1.4中datadump
,dataload
除非您的每个模型(表)的数据完全适合 RAM,否则甚至不可能,这意味着您可能无论如何都不会为您的数据库使用持久存储。
例如,如果您使用 Chris Patt 的方法并且您的数据库是 postgres,那么对我来说pg_dumpall
,在 6GB 数据库上花费的时间不到 30 秒。datadump
如果您没有足够的 RAM,则会在交换中搅动数小时。