Пользовательская команда django-admin: проблемы с моделями использования и crontab - PullRequest
0 голосов
/ 02 августа 2011

Я создал собственную команду django-admin.Я использую этот урок Написание пользовательских команд django-admin

Например, моя команда:

import os
from home.models import BuildTask

class Command(BaseCommand):
    def handle(self, *args, **options):

        tasks = BuildTask.objects.all()

        os.system("touch /Users/macbook/Desktop/Start.txt")

        if tasks:
            os.system("touch /Users/macbook/Desktop/TasksExist.txt")
        else:
            os.system("touch /Users/macbook/Desktop/TasksNotExist.txt")

        os.system("touch /Users/macbook/Desktop/End.txt")

, когда я запускаю эту команду с помощью терминала:

python manage.py build_task

все в порядке, я получаю 3 файла на Destop.

Но когда я использую crontab,

* * * * *  /usr/bin/python /Users/macbook/builder/manage.py build_task

я просто получаю 1 файл на рабочем столе ("Start.txt").Видимо скрипт останавливает работу на линии.

if tasks:

Пожалуйста, помогите мне.В чем проблема?

Обновление: / var / mail / macbook:

 File "/Users/macbook/workspace/acodebuilder/home/management/commands/build_apk.py",    
     line 26, in handle
 if tasks:
 File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 113, in 
     __nonzero__
 iter(self).next()
 File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 107, in 
     _result_iter
 self._fill_cache()
 File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 772, in 
     _fill_cache
 self._result_cache.append(self._iter.next())
 File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 273, in 
     iterator
 for row in compiler.results_iter():
 File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py", line 680, in
    results_iter
 for rows in self.execute_sql(MULTI):
 File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py", line 735, in 
     execute_sql
 cursor.execute(sql, params)
 File "/Library/Python/2.7/site-packages/django/db/backends/util.py", line 34, in 
     execute
 return self.cursor.execute(sql, params)
 File "/Library/Python/2.7/site-packages/django/db/backends/sqlite3/base.py", line 234, 
    in execute
 return Database.Cursor.execute(self, query, params)

 django.db.utils.DatabaseError: no such table: home_buildtask

Почему "нет такой таблицы"?

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Вы должны увидеть вывод ошибок команды (если они были), выполнив команду mail. Кроме того, вы можете добавить &> ~/Desktop/django-command-error.log к записи crontab, и вывод ошибки cron будет сохранен на вашем рабочем столе в django-command-error.log.

0 голосов
/ 19 октября 2011

это проблема, вызванная базой данных SQLite. Мы должны использовать MySQL или PGSQL!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...