ActivityWatch / activitywatch

The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
https://activitywatch.net/
Mozilla Public License 2.0
11.98k stars 544 forks source link

ci: added test-upgrade job for testing migrations #893

Closed ErikBjare closed 1 year ago

ErikBjare commented 1 year ago

Trying to write a test that would catch the issue in v0.12.3b2 (fixed in https://github.com/ActivityWatch/activitywatch/commit/53b5ef55c73f0b5f685262cbc2547e6529bc2f65):

2023-05-26 10:36:38 [INFO ]: Using database file: /home/erb/.local/share/activitywatch/aw-server/peewee-sqlite.v2.db  (aw_datastore.storages.peewee:151)
2023-05-26 10:36:38 [ERROR]: Unhandled exception  (root:50)
Traceback (most recent call last):
  File "peewee.py", line 3246, in execute_sql
sqlite3.OperationalError: no such column: t1.datastr

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "__main__.py", line 3, in <module>
  File "aw_server/main.py", line 42, in main
  File "aw_server/server.py", line 108, in _start
  File "aw_server/server.py", line 56, in create_app
  File "aw_datastore/datastore.py", line 28, in __init__
  File "aw_datastore/storages/peewee.py", line 157, in __init__
  File "aw_datastore/storages/peewee.py", line 166, in update_bucket_keys
  File "peewee.py", line 7107, in __iter__
  File "peewee.py", line 1966, in inner
  File "peewee.py", line 2037, in execute
  File "peewee.py", line 2210, in _execute
  File "peewee.py", line 3254, in execute
  File "peewee.py", line 3246, in execute_sql
  File "peewee.py", line 3014, in __exit__
  File "peewee.py", line 192, in reraise
  File "peewee.py", line 3246, in execute_sql
peewee.OperationalError: no such column: t1.datastr
[3884895] Failed to execute script '__main__' due to unhandled exception!
ErikBjare commented 1 year ago

Alright, now kinda working. The failures that exist are valid, and should probably be fixed.

Could just set the workflow to a workflow_dispatch and merge it.