Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中手动从MySQL数据库删除表_Mysql_Django_Django Models - Fatal编程技术网

在Django中手动从MySQL数据库删除表

在Django中手动从MySQL数据库删除表,mysql,django,django-models,Mysql,Django,Django Models,在Django中试用我的博客应用程序(blogapp)期间,我创建了两个模型(类别和语言),使用以下连接将它们连接到另一个模型(Post): category = models.ManyToManyField(Category) language = models.ForeignKey(Language) 然后它给出了一个错误,如由于缺少默认值。尝试使用和的混合体将其回滚。然后我尝试使用添加一个默认值。我得到一个错误“django.db.utils.OperationalError 1050,

在Django中试用我的博客应用程序(
blogapp
)期间,我创建了两个模型(类别和语言),使用以下连接将它们连接到另一个模型(
Post
):

category = models.ManyToManyField(Category)
language = models.ForeignKey(Language)
然后它给出了一个错误,如由于缺少默认值。尝试使用和的混合体将其回滚。然后我尝试使用添加一个默认值。我得到一个错误“django.db.utils.OperationalError 1050,表XXX已经存在”,然后我尝试了。试图通过手动从migrations文件夹中删除创建的迁移来恢复迁移。在某个时刻,我得到了django
(1054,“字段列表中的未知列”)
错误

最后,我决定回到我原来的起点。当我使用
python manage.py dbshell
连接到我的MySQL数据库时,我意识到我的MySQL服务器仍然有两个应该删除的表,
blogapp_category
blogapp_language
。服务器工作正常,但当我尝试添加这些模型时,我不断发现
“表XXX已经存在”
错误

从MySQL中删除表似乎是目前唯一的选择。 当我跑的时候

mysql> SHOW COLUMNS FROM blogapp_post;
我没有看到任何语言或类别的引用,即没有名为
language\u id
category\u id
的列。我现在有两个问题:

  • 使用以下方法手动删除表是否安全:

    DROP TABLE blogapp_语言; DROP TABLE blogapp_类别

  • 会有什么负面影响吗

  • 有没有一种方法可以冻结像git这样的数据库,这样当我恢复到旧数据库时,通过django迁移添加到数据库中的表就会自动删除
  • 从表
    django\u迁移
    中删除相应的条目
  • 从应用中删除迁移文件夹
  • 删除应用程序创建的表 现在进行makemigrations和migrate

    您可以使用git恢复,但会有错误和数据更正要求