~craftyguy/ridecasa#3: 
Duplicate activities in db after replacing/overwriting existing

There seem to be duplicates of the same activity when it is re-uploaded and the 'overwrite existing' option is checked, resulting on the following exception:

Traceback (most recent call last):
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/huey/api.py", line 359, in _execute
    task_value = task.execute()
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/huey/api.py", line 723, in execute
    return func(*args, **kwargs)
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/huey/api.py", line 202, in inner
    return fn(*a, **k)
  File "/home/clayton/src/ridecasa/tasks.py", line 66, in import_file
    add_activity(activity, current_user_id,
  File "<string>", line 2, in add_activity
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/orm/core.py", line 515, in new_func
    return func(*args, **kwargs)
  File "/home/clayton/src/ridecasa/tasks.py", line 73, in add_activity
    existing = db.Activity.get(name=activity.name, user=current_user_id)
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/orm/core.py", line 4001, in get
    try: return entity._find_one_(kwargs)  # can throw MultipleObjectsFoundError
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/orm/core.py", line 4104, in _find_one_
    if obj is None: obj = entity._find_in_db_(avdict, unique, for_update, nowait, skip_locked)
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/orm/core.py", line 4164, in _find_in_db_
    objects = entity._fetch_objects(cursor, attr_offsets, 1, for_update, avdict)
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/orm/core.py", line 4284, in _fetch_objects
    if max_fetch_count == 1: throw(MultipleObjectsFoundError,
  File "/home/clayton/src/ridecasa/venv/lib/python3.8/site-packages/pony/utils/utils.py", line 106, in throw
    raise exc
pony.orm.core.MultipleObjectsFoundError: Multiple objects were found. Use Activity.select(...) to retrieve them
Status
REPORTED
Submitter
~craftyguy
Assigned to
No-one
Submitted
4 years ago
Updated
4 years ago
Labels
bug