django迁移到地狱,掉了一张桌子。试图把它拿回来

时间:2017-01-19 16:53:51

标签: django django-models django-migrations

所以我在我的数据库中删除了一个表,我想要它。重新运行迁移会导致错误表不存在。经过一些狩猎,我学会了我可以删除我的django_migrations中的所有应用程序名称我的应用程序。所以我这样做了,重新开始迁移它开始工作然后抱怨没有丢弃的表。

我不知道如何再次将一张桌子拿回来并保留所有内容......无论如何要做到这一点?

我不关心数据库中90%的数据,只关心几个表和字段。我放弃的表格我不关心数据。

2 个答案:

答案 0 :(得分:2)

您可以使用sqlmigrate命令打印Django将执行的SQL命令。然后,您可以选择重新创建已删除表格所需的命令并手动应用它们。

一旦所有表再次到位,您可以使用migrate <app_name> --fake转发迁移历史记录,因此Django知道此应用程序中的迁移已应用。

答案 1 :(得分:1)

首先检查django_migrations表。它包含有关已运行迁移的数据。将此数据与实际迁移文件进行比较,以了解哪些数据已运行。

最后,不要害怕删除django_migrations中的行并修改原始迁移文件以重新创建所需的表格。