3

私は django-crontab を使用していますが、次の cron ジョブはうまく機能しています。

次のcronジョブが追加されます

python manage.py crontab 追加

設定.py

CRONTAB_COMMAND_SUFFIX = '2>&1'
CRONJOBS = [
    ('*/1 * * * *', 'my_app.cron.test','>> ~/cron_job.log'),
]

my_app/cron.py

from datetime import datetime
def test():
    print('HELLO : {}'.format(datetime.now()))

サーバーが実行されると、ログ ファイルに出力されます。

~/cron_job.log

>...
>HELLO : 2018-01-04 23:52:02.983604
>...

すべてのモデルにクエリを追加したい場合も同じです:

my_app/cron.py

from datetime import datetime
from django.apps import apps
def test():
    print('HELLO : {}'.format(datetime.now()))
    print(apps.get_models())

~/cron_job.log

>...
>HELLO : 2018-01-05 10:00:02.283938
[<class 'django.contrib.admin.models.LogEntry'>, <class 'django.contrib.auth.models.Permission'>, <class 'django.contrib.auth.models.Group'>, <class 'django.contrib.auth.models.User'>, <class 'django.contrib.contenttypes.models.ContentType'>, <class 'django.contrib.sessions.models.Session'>, <class 'my_app.models.UserProfile'>, <class 'my_app.models.Post'>, <class 'my_app.models.Comment'>, ...]
>...

しかし、モデル エントリのクエリを開始すると、次のようになります。

my_app/cron.py

from datetime import datetime
import blog_app.models
def test():
    print('HELLO : {}'.format(datetime.now()))
    for post in my_app.models.Post.objects.all():
        print(post.title)

何も出力されません。モデルのエントリは存在しますが、アイデアはありますか?

>...
>django.db.utils.OperationalError: no such table: blog_app_post
4

1 に答える 1