todoist-to-sqlite
todoist-to-sqlite copied to clipboard
`sqlite3.OperationalError: no such column: auto_reminder`
$ todoist-to-sqlite sync todoist.db
Traceback (most recent call last):
File "/Users/pkoch/.local/bin/todoist-to-sqlite", line 8, in <module>
sys.exit(cli())
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/todoist_to_sqlite/cli.py", line 89, in sync
db["users"].upsert(sync_data["user"], pk="id")
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/sqlite_utils/db.py", line 3134, in upsert
return self.upsert_all(
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/sqlite_utils/db.py", line 3169, in upsert_all
return self.insert_all(
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/sqlite_utils/db.py", line 3093, in insert_all
self.insert_chunk(
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/sqlite_utils/db.py", line 2858, in insert_chunk
result = self.db.execute(query, params)
File "/Users/pkoch/.local/pipx/venvs/todoist-to-sqlite/lib/python3.9/site-packages/sqlite_utils/db.py", line 473, in execute
return self.conn.execute(sql, parameters)
sqlite3.OperationalError: no such column: auto_reminder
Not quite sure what's going on, schema-wise. I'd not expect parity to be kept between collaborators and the auth'd user.
What I ended up doing was:
db["users"].upsert_all(
sync_data["collaborators"] + [sync_data["user"]],
pk="id",
foreign_keys=utils.foreign_keys_for("users"),
)
This adds a bunch of columns to the users table. Maybe it'd make more sense to have a self
column, since we know more about the logged-in user than just collaborators (like preferences and stuff)?