首页 > 解决方案 > 将 Django Celery Beat 连接到正确的数据库

问题描述

我正在使用本教程开始使用 celery (4.4.7) 。我相信我已经正确设置了所有内容,但是每当我运行以下命令时:

celery -A myproj beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler

我得到错误:

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

我迁移了数据库,因此确实存在 celery beat 表。这个已关闭的问题https://github.com/celery/django-celery-results/issues/22正是我得到的错误,但是,似乎解决方案对我不起作用可能是因为我不知道怎么做。

标签: pythondjangopostgresqlcelery

解决方案


我会检查您的 settings.py 文件以检查您为 celery 配置设置的内容。

如果这不是用 postgres 创建的,那么您可以使用 postgres 创建数据库、用户、密码并设置权限

创建用户

$ sudo -u postgres createuser <username>

创建数据库

$ sudo -u postgres createdb <dbname>

给用户一个密码

$ sudo -u postgres psql
psql=# alter user <username> with encrypted password '<password>';

授予数据库权限

psql=# grant all privileges on database <dbname> to <username> ;

推荐阅读