One more "django.db.utils.ProgrammingError: relation "device_gclouddevice" does not exist"

One more "django.db.utils.ProgrammingError: relation "device_gclouddevice" does not exist"

我知道有很多 post 有这个问题,但不知何故我找不到解决我的问题的方法。

配置

Django 3.0.0
Python3.6.9
Docker 19.03.5

问题

我有一个 class 像下面这样开始,没什么特别的。

    class PubSub:  
      test = GcloudDevice.objects.count()

我通过命令行使用这个class,如果我评论测试变量,它会完美地工作。
但是如果我 运行 这条线的命令行我得到:

django.db.utils.ProgrammingError: relation "device_gclouddevice" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "device_gclouddevice".

问题是我能够创建 GcloudDevice,我可以从管理区域看到它并对其进行管理。

我已经尝试过的东西

我删除了所有迁移,删除了我的数据库及其卷。 重新创建了一遍,还是一样的问题。

此后我尝试再次从我的设备应用程序中删除迁移并自行迁移它们,还是一样

如果有人能帮助我并向我解释为什么一切都可以在管理员上运行(我可以在 django-debug-toolbar 上看到这个请求正在通过:

SELECT COUNT(*) AS "__count"
  FROM "device_gclouddevice

,多么令人沮丧)但不是来自命令行我会很高兴。

所以答案并不难,但我花了一些时间才得到它。 (以及一些帮助)。

事情是我试图通过纯 python 命令行使用 Django ORM。
为了修复它,我正在创建一个 django 命令,我可以将其与“./manage.py MyCommand”一起使用。 这样我就可以使用 django 的选项并通过命令行使用它。 瞧瞧