【发布时间】:2021-01-26 11:06:12
【问题描述】:
在django-background-tasks==1.1.11(Django==2.2,Python 3.6.9)上,我遇到了这个问题,每次我运行python manage.py migrate,表background_task_completedtask 都会被删除。这打破了我的后台任务。到目前为止,我已经找到了一种逆转它的方法,因为它是与初始迁移分开的迁移,这意味着我可以python manage.py migrate background_task 0001_initial 来恢复它,但这确实意味着它仍然会在下一次迁移中被删除。
对更持久的解决方案有什么想法吗?
【问题讨论】:
-
如果您浏览了每个迁移文件,它们中的任何一个看起来是否会删除该表?
-
我自己的应用程序的 cmets:没有。有一个名为
0002_delete_completedtask的background_task迁移,但我不知道它存储在哪里,并认为如果我删除它,它只会重新出现在下一个makemigrations -
那么它是在外部包中吗?你能
cd到你的虚拟环境的目录并运行find . -name "*0002_delete_completedtask*"吗?您之前可能已经卸载了django-background-tasks应用程序,然后运行了makemigrations,这会生成迁移。尝试删除它,确保应用程序已安装,然后再次运行makemigrations以检查它是否不会再次生成。 -
是的,它是一个外部包,确切地说是
django-background-tasks==1.1.11。删除迁移(和缓存),运行 makemigrations 并简单地重新创建迁移......
标签: python django django-migrations background-task