Django在syncdb时以自定义方式初始化数据库

时间:2013-08-01 05:30:42

标签: database django

我在开发过程中使用Django。令人讨厌的是,每次我在模型中更改一点时,我都需要删除数据库并运行syncdb。出于测试目的,我想每次运行syncdb时自动将一些初始数据添加到数据库中。我已经尝试将这些代码放在一个应用程序的__init__.py中,但它会在创建数据库之前运行,并且处理异常会有点烦人。有没有更简洁的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

最初填充数据库后;使用dumpdata命令创建一个fixture(数据副本)。将其保存到文件中。然后使用loaddata命令自动填充数据库。

假设您有一个名为bookstore的应用,您希望自动加载一系列图书,作者等。

在数据库中添加了一些记录后:

python django-admin.py dumpdata bookstore > initial.json

进行一些更改或想要重新创建数据库之后:

python django-admin.py loaddata initial.json

南方很好,但是为了这个目的,这太过分了。

答案 1 :(得分:0)

如果您需要在数据库中进行更改,并且希望数据保持安全,那么SOUTH是适合您的软件。

它管理数据库及其数据的变化。如果您有South,则在进行更改时不需要删除数据库。此外,它还备份了以前的数据库状态,因此如果您想要还原,则可以。我建议你阅读它的文档。这肯定会有所帮助。