我在开发过程中使用Django。令人讨厌的是,每次我在模型中更改一点时,我都需要删除数据库并运行syncdb。出于测试目的,我想每次运行syncdb时自动将一些初始数据添加到数据库中。我已经尝试将这些代码放在一个应用程序的__init__.py
中,但它会在创建数据库之前运行,并且处理异常会有点烦人。有没有更简洁的方法来做到这一点?
答案 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,则在进行更改时不需要删除数据库。此外,它还备份了以前的数据库状态,因此如果您想要还原,则可以。我建议你阅读它的文档。这肯定会有所帮助。