Store data in SQL database
Add an option to connect to an SQL database and store all task data in it. Obviously, data also should be stored locally as a read-only backup in case the database server is down, and eventually to speed up things.
Try taking backup using "Cloudbacko software" i have experience of using CloudBacko software for my MYSQL database backup. Currently, i am using the same software because it gives me full security and protection to my data. Backup of a large 100GB MySQL Database can be finished overnight. Fast multi-thread MySQL Database backup. Block level incremental hot backup with zero downtime. MySQL Database backup pre-requisites checking guarantees restorability. Multi-destination concurrent backup. Directly restore from backup to original database. Service is very good so i would like to suggest you to have CloudBacko software for your backup plan.
Mark Pearson commented
Another alternative would be to use an open source graph database such as OrientDB (http://orientdb.com/orientdb/) which would allow Tasks, Efforts, Notes, Categories etc. to be modelled as vertices and relationships between them as edges. In an OrientDB database vertices and edges may have an associated class (and it supports object-oriented-like inheritance) and both vertex and edge classes may have predefined attributes. OrientDB also supports SQLite style direct access to a database file *and* access to a database via a OrientDB server.
Just a thought... :-) If I had time I would try to implement this myself.
An option to use a database backend does not slow down TC.
By using real standard SQL syntaxis it could connect to almost all kind of databases.
For security reasons no unsafe connection should be possible to use......
I also don't see how it should be a problem for portable versions of TC?
And it seems THE SOLUTION for a multi-user version and delegations of tasks to other users.
maybe TC or someone else :) could offer a webbased database service for it? it could genereate some profit for the developers of TC
do not add such features. I imagine it would make TC much more complicate to run. it will slow. it should be platform independent. this features is not best. if you implement this feature then user will hate project. please do not add features.
Oliver Pientka commented
I would really like to use an opptional database connection.
If you have a lot of tasks in one file, TC will sloww down extremely.
I need to start a new XML file every 3 months.
Beside, using a database would give you the ability to track the same tasks from different workstations like at work and from your home office.
I know, you can do this also with TC portable from portableapps.com, but carrying your xml files on a usb drive is verry inperformant.
I really would appreciate a database backend rather than xml for better performance with a lot tasks. Please add sqlite support rather than a database server to stay portable.
I use TC as a work log for all job activities which leads to a large number of individual events. I need to delete mundane events after about 3 months to keep the interface working reasonably well. As the number of events passes round 900 it becomes sluggish and over 1000 starts to freeze. I don't consider this a bug, but it is an unpleasant feature.
Maxim Antufyev commented
I think it is related to multi-user / sync / "offline and online mode" issues...
MariaDB and PostgreSQL are good options to consider,
Sedna (native XML DB) will probably fit with less effort for local multiversion files.
Maybe better to use SQLite?
How would this affect the portable versions of TC? I imagine it would make TC much more complicate to run, especially on locked down workstations.