【问题标题】:ProgrammingError: relation "celery_taskmeta" does not existProgrammingError:关系“celery_taskmeta”不存在
【发布时间】:2015-01-22 21:33:52
【问题描述】:

第一季度。

我正在运行本地服务器。它运行没有任何问题。我运行pip install -r requirements.txt 以确保在再次运行之前拥有所有软件包。 现在我不断收到以下错误:

django.db.utils.ProgrammingError: relation "celery_taskmeta" does not exist

有一个相当旧的related question on SO,它建议运行manage.py migrate,但运行它也会返回相同的错误。

这是我requirements.txt的内容:

amqp==1.4.6
anyjson==0.3.3
apns-clerk==0.1.1
arrow==0.4.1
backports.ssl-match-hostname==3.4.0.2
billiard==3.3.0.19
bootstrap-admin==0.3.0
boto==2.25.0
celery==3.1.17
certifi==14.5.14
cffi==0.8.6
cryptography==0.7.1
Cython==0.19.1
dill==0.2.1
Django==1.6.1
django-appconf==0.6
django-bower==4.8.1
django-celery==3.1.0
django-compressor==1.3
django-debug-toolbar==1.2
django-extensions==1.4.9
django-gravatar2==1.1.3
django-picklefield==0.3.1
django-resized==0.2.4
django-ses==0.6.0
djangorestframework==2.3.8
enum34==1.0.4
gcm-client==0.1.4
Jinja2==2.7.3
joblib==0.8.0a3
kombu==3.0.24
line-profiler==1.0b3
MarkupSafe==0.23
mlpy==3.5.0
mock==1.0.1
nose==1.3.4
numpy==1.8.0
Pillow==2.7.0
psycopg2==2.4.6
pyasn1==0.1.7
pycparser==2.10
pyOpenSSL==0.14
pyparsing==2.0.3
python-dateutil==2.2
python-memcached==1.48
python-slugify==0.1.0
pytz==2014.10
pyzmq==14.4.1
raven==3.3.7
requests==2.5.1
scipy==0.13.3
six==1.8.0
South==0.7.6
sqlparse==0.1.11
tornado==4.0.2
Unidecode==0.4.17
yattag==1.0.7

我不确定如何解决此问题。

是不是新旧版本的 Django 和 Celery 不兼容?我最近的安装是两周前的,那么过去两周内是否有可能导致此问题的版本?还是完全不相关?

第二季度。

我是初学者,所以我什至不确定celery_taskmeta 是什么以及它的意义。

【问题讨论】:

  • 可能。 Django 1.7 中有一些更改,这些更改会导致旧模块出现问题。最好的方法是在另一个 virtualenv 中复制您的项目,但这次使用 Django 1.7 来解决这个问题。
  • 我刚刚尝试过,但没有成功。还有其他方法可以重新制作celery_taskmeta吗?我是初学者,我什至不确定它是什么以及为什么它很重要。
  • 在进行迁移之前,您是否已将“djcelery”添加到 INSTALLED_APPS?你是如何定义 celery 与 django 一起工作的?
  • 是的,它已经在我的INSTALLED_APPS 中了。正如我所说,它在我运行 pip install 命令之前就可以正常工作,实际上 requirements.txt 文件没有被更改。
  • 酷。我还听说过进行虚假迁移 (./manage.py migrate djcelery 0001 --fake) 的技巧,因此南认为它之前有一个空数据库,现在如果你要求它会应用真正的迁移。 stackoverflow.com/a/9918553/15127

标签: python django celery django-celery


【解决方案1】:

本例中的问题通过运行解决:

python manage.py syncdb --all

This question 指出 django 和 celery 之间的版本不匹配,但重新安装它们并没有改变任何东西。 It seems 这是旧版本中的一个问题 (here too)

其他消息来源指出这可能有效:

python manage.py migrate djcelery

python manage.py syncdb python manage.py migrate

但事实证明,--all 选项对于解决此问题至关重要。 This 是最有帮助的来源。

希望对大家有用

【讨论】:

  • 有趣,我在尝试执行此操作时收到manage.py syncdb: error: unrecognized arguments: --all
猜你喜欢
  • 2018-10-25
  • 2013-05-06
  • 2020-03-06
  • 2023-03-14
  • 2018-05-23
  • 2016-05-01
  • 2016-04-11
  • 2016-10-01
  • 2017-06-26
相关资源
最近更新 更多