python - 将 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正是我得到的错误,但是,似乎解决方案对我不起作用可能是因为我不知道怎么做。
解决方案
我会检查您的 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> ;
推荐阅读
- c++ - Bellman-Ford算法中的堆栈溢出和分段错误11
- php - 无法使用php从数据库中动态创建的添加删除字段中插入数据
- php - 如何使用 laravel 刀片和组件正确创建 url?
- python - 通过多索引值访问数据帧行
- javascript - 使用javascript中的复选框删除HTML表格中的多行
- javascript - 单击按钮上的下拉菜单无法更改高度
- swift - 视图不会自动调整大小以满足约束
- spring-boot - JPA CrudRepository save() 保存后不填充主键
- c - 这又是如何被执行的
- microservices - 跨微服务的任务分配