-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to modify database after copying from taskwarrior #2
Comments
Interesting, this to me seems like a permissions issue rather than version (being able to read but not write). I cannot reproduce this but I do not have a Linux system to try. I will try to use the same version you specified above and see if it causes any issues. Will update when I have the chance. Other than that is there any other weird behavior? Are you unable to modify the db from Taskwarrior or only Taskchamp? Just to be sure I understand, the app works fine until you modify a task from taskwarrior and then that's when the issue starts happening? If that's the case, did you update the task database file path in the .taskrc file to point towards the iCloud location before running the taskwarrior command? |
I don't think that this is a permission issue. I just gave the file 777 before copying it back to the icloud, but the problem persists. Here is a log of what I am doing: ❯ cp ~/icloud/taskchamp/task/taskchampion.sqlite3 ~/.task/taskchampion.sqlite3
❯ task next
ID Age Description Urg
1 6min new task from taskchamp 0
1 task
❯ cp ~/.task/taskchampion.sqlite3 ~/icloud/taskchamp/task/taskchampion.sqlite3 Taskwarrior itself seems to work fine. In the above example i have not modified any task with taskwarrior, but only inspected the tasks. When modifying tasks or adding new tasks, these modifications will be visible in the taskcamp app but the problems in the app are the same: After copying the file back to the icloud and starting the taskchamp app, I cannot modify or add tasks to the database, e.g. marking a task as done would result in an error with the message When running the taskchamp app with the new updated file, the sqlite file seems to be opened in WAL mode, as a write ahead log file, and a shared memory file are created in the icloud drive:
I also did a comparison of the sqlite file before and after running taskwarrior:
After running taskwarrior:
So there are quite a few differences, I guess that the problems are caused by the different function signatures in the schemas. Is this signature difference on purpose, or a version problem? I did not update the .taskrc app. But I think that this shouldn't matter as long as I do the copying manually? |
After updating to newest taskwarrior version on MacOS (taskwarrior 3.3.0 and ios 18.1.1) I am experiencing issues as well. You are right that it seems like they introduced some changes to the sqlite file, thanks for pointing that out. I will investigate this further when I find some time, in the meantime, would you be able to try running with a previous taskwarrior 3 version? 3.1.0 seemed to be working well for me. |
Yes, it works with version 3.1.0 :) |
That's great to here :) I'll re-open this as this is something I should definitely fix. It's great to hear that someone made it work for Linux too! Did you do anything special other than using rclone? |
I am using the latest version of rclone ( mkdir ~/icloud
rclone mount icloud: ~/icloud --vfs-cache-mode full --daemon Afterward, you could, for example, point the Taskwarrior data folder to the iCloud mount by modifying the following line in
Alternatively, you could create a script to synchronize the Taskwarrior data folder with the iCloud mount. The issue is that, as of now, rclone does not seem to support uploading files to app-folders in iCloud Drive (e.g., As a workaround, you could create another sync folder in iCloud Drive and manually move the data file from the sync folder to the correct location using the Files app. However, this is not an ideal solution, especially if, like me, you frequently switch between devices. I am not familiar with Swift and do not know how easy this would be to implement, but perhaps the app could include an option to manually specify the path to the data file. This could circumvent the issue entirely. |
Description
When copying the taskchampion.sqlite3 database from taskwarrior on Linux to taskchamp on iOS, taskchamp is unable to modify the database. Existing tasks cannot be updated, and new tasks cannot be created. Taskchamp can still read the database, but any attempt to modify it results in an error without further details.
Steps to Reproduce
task next
Observed Behavior
Environment
Additional Notes
I don't think that this is a linux specific problem, but don't have a Mac at hand to test. Maybe this is caused by a version conflict? It would be nice to make this work, as this would allow for automated syncing with linux by using the new iCloud Drive support in rclone.
The text was updated successfully, but these errors were encountered: