Django:表不存在

Viv*_*han 28 python mysql django django-models

我删除了一些与应用程序相关的表.并再次尝试syncdb命令

python manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

它显示错误

django.db.utils.ProgrammingError: (1146, "Table 'someapp.feed' doesn't exist")
Run Code Online (Sandbox Code Playgroud)

models.py

class feed(models.Model):
    user = models.ForeignKey(User,null=True,blank=True)
    feed_text = models.CharField(max_length=2000)
    date = models.CharField(max_length=30)
    upvote = models.IntegerField(default=0)
    downvote = models.IntegerField(default=0)

    def __str__(self):
        return feed.content
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来获取该应用程序的表格?

don*_*yor 76

  1. 删除表(你已经做过),
  2. 在model.py中注释掉模型,
  3. 和..

如果django版本> = 1.7:

python manage.py makemigrations
python manage.py migrate --fake
Run Code Online (Sandbox Code Playgroud)

其他

python manage.py schemamigration someapp --auto
python manage.py migrate someapp --fake
Run Code Online (Sandbox Code Playgroud)
  1. 在models.py中评论你的模型
  2. 转到第3步.这次没有 -

  • 问题是,模型注释掉了其余代码中的错误...... (6认同)
  • 谢谢!!!我遇到了一个问题,即它没有将表添加到生产环境中的数据库中。花了几个小时尝试通过删除迁移来修复它。但是,仅伪装迁移并重新添加模型即可解决此问题。Django 1.10 (2认同)
  • 谢谢。但是真正的问题仍然存在……为什么会这样? (2认同)
  • 这个解决方案不起作用,因为有 User 模型,如果我评论它,那么 Django 就会失败。不可能评论整个项目和整个 Django 代码。 (2认同)

Kei*_*ong 15

对于那些可能仍有问题的人(像我一样),试试这个:

注释掉主应用程序中的所有URL urls.py

然后继续并运行迁移:

$ ./manage.py makemigrations
$ ./manage.py migrate
Run Code Online (Sandbox Code Playgroud)

这个问题是通过除去缓解()

    solved_time = models.DateTimeField('solved time', default=timezone.now())
Run Code Online (Sandbox Code Playgroud)

    solved_time = models.DateTimeField('solved time', default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

我从reddit得到了这个答案


小智 7

当manage.py setmigration然后迁移到SQL数据库无法正常工作时,解决我的问题的方法如下:

  1. 运行命令:python manage.py migrate --fake MyApp zero
  2. 在那之后:python manage.py migrate MyApp

正确运行迁移命令后,connections.py 出现的问题就解决了!至少对于我来说。

我正在使用 Python (3.x)、MySQL DB、Django (3.x),当我在数据库中成功创建表一段时间后需要时,会出现一些有关connections.py 的错误。但是,上面的命令有帮助。我希望他们能帮助所有遇到此类问题的人。