openoakland / OakCrime-Decommissioned

Code supporting citizen analysis of crime in Oakland, CA
22 stars 16 forks source link

harvestPatrolLog fails when no OakCrime objects exist in the database #70

Closed adborden closed 5 years ago

adborden commented 5 years ago

QuerySet.latest will raise an error if the criteria isn't met. This doesn't sound like what we want. If we have an empty database, there's just no last date the job run, so we should fetch all available records from Box.

$ python manage.py harvestPatrolLog
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/home/adborden/projects/brigade/OakCrime/showCrime/dailyIncid/management/commands/harvestPatrolLog.py", line 389, in handle
    lastDLogOC = OakCrime.objects.filter(source__contains='DLog_').latest('lastModDateTime')
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/db/models/query.py", line 561, in latest
    return self._earliest_or_latest(field_name=field_name, direction="-")
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/db/models/query.py", line 555, in _earliest_or_latest
    return obj.get()
  File "/home/adborden/.pyenv/versions/OakCrime/lib/python3.6/site-packages/django/db/models/query.py", line 380, in get
    self.model._meta.object_name
dailyIncid.models.DoesNotExist: OakCrime matching query does not exist.