TMSU database schema changes

7 views
Skip to first unread message

Paul Ruane

unread,
Feb 12, 2013, 6:37:19 PM2/12/13
to tm...@googlegroups.com
I have just checked in revision 920862f which makes another change to the TMSU database schema. This will only affect you (at this time) if you are using a trunk build, as opposed to the 0.0.9 release or earlier.

Since 0.0.9 I have been experimenting with ways of improving the performance of inherited tags which in 0.0.9 were calculated on-the-fly by enumerating the file-system whenever the database was queried. This was obviously very slow in larger file-systems so I had been dead set on getting these tag-inheriting files into the database when the file is initially tagged so that the performance penalty is paid only once. Unfortunately the approaches I have tried also have their own performance and usability issues.
Hopefully this new solution will solve these problems:

* The 'files' command no longer goes looking for files on disk that inherit tags: it now works solely off the contents of the database.
* A new --recursive option on the 'tag' and 'untag' command allow directories to be tagged/untagged recursively.
* The 'files' command has new --directory and --file options to help filter between directories and files.[1]

To use the new trunk, you will need to upgrade the database.

1. Backup your database.
2. Use the 0.0.9_to_0.1.0.sql script to upgrade a 0.0.9 release database or trunk_to_0.1.0.sql script to upgrade a newer, trunk database.
3. Run:

    $ sqlite -init misc/db-upgrades/VER_to_0.1.0.sql ~/.tmsu/default.db

Please let me know of any problems you have.

Paul
- - -

Footnote 1: --directory actually excludes files that are in matching directories: any files that are tagged directly will still be returned. Likewise --file excludes the parent directories of matching files: any matching directories that have no matching files will still be returned.
Reply all
Reply to author
Forward
0 new messages