我是第一次尝试南方赛程,所以希望这是件容易的事。在
我使用dumpdata
命令将其作为json转储。我把它放在我的initial_data.json
文件中,设置fixtures目录,然后继续我的工作。同时,我也设置了我最初的南迁,但我不确定这是否对这里有影响。我决定要测试它,所以我完全放弃了我的数据库并运行manage.py syncdb
来查看它是否能够正确加载。发生这种情况时,数据库中的大量表没有被创建,syncdb抛出一个错误:
> django.db.utils.ProgrammingError: Problem installing fixture
> '/Users/jim/dev/testapp/testing/fixtures/initial_data.json': Could not
> load booker.Position(pk=1): (1146, "Table 'testing.booker_position'
> doesn't exist")
这是怎么回事?为什么fixture会阻止我的表被创建,为什么这个不起作用?在
如果您
DROP DATABASE
,但是应用程序/项目中仍然有South迁移,那么您将得到错误,因为数据库更改的历史记录在迁移中。在如果您希望重新加载表,最好的方法是删除数据库迁移(每个应用程序中的South Migration文件夹),然后重新-
syncdb
并再次使用South
执行初始的schemamigration
。在将整个数据库转储并使用Django的fixtures实用程序重新加载到其他地方是一件非常棘手的事情。Django的syncdb命令和South的初始迁移已经为您创建了一堆表,因此您必须先删除这些表,然后才能继续。在这个特定的示例中,您需要连接到数据库并运行
祝你好运。在
相关问题 更多 >
编程相关推荐