在我使用Django中的博客应用程序(blogapp
)进行实验期间,我创建了两个模型(类别和语言),使用以下连接将它们连接到另一个模型(Post
):
category = models.ManyToManyField(Category)
language = models.ForeignKey(Language)
然后由于缺少默认值,它会出现THIS之类的错误。试图通过使用THIS和THIS的混合物来回滚。然后我尝试使用THIS添加默认值。我收到了错误"django.db.utils.OperationalError 1050, Table XXX already exists"
,然后我尝试了THIS。试图通过手动删除迁移文件夹中创建的迁移来恢复迁移。在某些时候我得到了django (1054, "Unknown column in 'field list")
错误。
最后我决定回到原来的起点。当我使用python manage.py dbshell
连接到我的MySQL数据库时,我意识到我的MySQL服务器仍然有两个应该被删除的表,blogapp_category
和blogapp_language
。服务器工作正常但我在尝试添加这些模型时遇到"Table XXX already exists"
错误。
从MySQL中删除表似乎是目前唯一的选择。 我跑的时候
mysql> SHOW COLUMNS FROM blogapp_post;
我没有看到任何语言或类别的引用,即没有名为language_id
或category_id
的列。我现在有两个问题:
使用以下方法手动删除表是否安全:
DROP TABLE blogapp_language; DROP TABLE blogapp_category;
会有任何负面影响吗?
答案 0 :(得分:0)
django_migrations
中删除相应的条目。现在做makemigrations并迁移。
您可以使用git恢复,但会出现错误和数据更正要求。