We currently do not distribute the database-2.3.sqlite files along with toolboxes that distribute builtin databases (e.g. brainvisa-share, disco).
As a result, users are prompted to run the database update when BrainVISA is first launched, which is somewhat confusing to new users.
We discussed several options to fix this with @sapetnioc:
- Update the databases at the end of
bv_maker build, and add a make install rule to each project to distribute the resulting files. The drawback is that make install for a given project would fail or potentially install obsolete databases if the project is built manually with make instead of bv_maker.
- Generate the databases as part of the
make rules of each project, and install them with a make install rule. In this case, we have to make sure that all toolboxes for which the project supplies files are installe, i.e. make the project dependent on these toolboxes. Maybe that would create circular dependencies? We also have to add a special-case to brainvisa.data.sqlFSODatabase.SQLDatabase.checkTables(), ignoring missing tables for builtin databases.
- Make the update of these databases silent at BrainVISA startup. That would require moving the sqlite files to a known-writable location, such as
$XDG_CACHE_DIR.