Since it seems a number of people are using the MySQL backend storage for Redland, most notably crschmidt with his julie in #julie on freenode, now seems like a good time to “release” a few shell scripts I have put together.
Common to all of them is the use of the Unix principle of quiet operation iff successful, and non-zero return codes when not.
- redland-mysql-optimize (latest version: 0.2)
- As with all databases, it’s a good idea to make sure the indices are up-to-date. The redland-mysql-optimize script will make sure that all relevant tables in a triple store have indices that reflect the contents of each table in the best way possible. The script depends on the
mysql
command line client.
Usage example:redland-mysql-optimize db
Changes since 0.1:
- Changed a $1 to $*, thanks Russell!
- redland-mysql-clean (latest version: 0.2)
- When a statement is deleted from a MySQL triple store through the Redland API, the associated node tables (Bnodes, Resources and Literals) are not updated — more on why that is in a separate post. Also, a statement can currently be asserted more than once in a single context.
Together, these issues can lead to the various tables containing more data than needed. The redland-mysql-clean script will, when run against a specific database, remove all orphaned nodes and duplicate statements in all models. It’s a good idea to run the redland-mysql-optimize script after a cleanup. The script depends onperl
, themysql
command line client, and thejoin (1)
utility.
Usage example:redland-mysql-clean db
Changes since 0.1:
- Fixed interpolation of $model, thanks to Russell – again!
- redland-mysql-drop-model (latest version: 0.1)
- The Redland API doesn’t include a method for removing a model once it has been created in a storage. This script makes up for that, helping out when a model is no longer needed. Be sure to run the redland-mysql-clean and redland-mysql-optimize scripts afterwards. The script depends on
perl
and themysql
command line client.
Usage example:redland-mysql-drop-model model db
NOTE: This is a destructive script.