2013-08-01 50 views
3

我在开发过程中使用Django。令人讨厌的是,每当我在模型中更改一点时,我都需要删除数据库并运行syncdb。为了进行测试,我想每次运行syncdb时都会自动将一些初始数据添加到数据库中。我试过在一个应用程序的__init__.py中放置这些代码,但它会在数据库创建之前运行,处理异常有点烦人。是不是有一个更好的方法来做到这一点?Django以自定义方式初始化数据库时syncdb

+0

看看'loaddata' https://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-loaddata –

+0

我想了解你的问题是由于一个测试数据库还是其他确切 – drabo2005

回答

1

一旦你最初填充数据库,使用dumpdata命令创建一个夹具(数据副本)。将它保存到一个文件。然后使用loaddata命令自动填充数据库。

假设你有要求要自动加载系列丛书,作者bookstore应用程序等

一旦你添加了数据库中的一些记录:

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

一旦你已经做了一些更改或想要重新创建数据库:

python django-admin.py loaddata initial.json 

南是很好,但它是为此目的矫枉过正。

+0

确切的,我曾经做过的事情。那是最好的选择 – drabo2005

0

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

它管理数据库及其数据的变化。如果你有南,你不需要删除数据库。它也具有以前数据库状态的备份,所以如果你想恢复,你可以。我建议你阅读它的文档。它一定会有所帮助。

相关问题