Database schema changes

We decided to improve performance of MUC repository storage and to do so we needed to change database schema of MUC component. Additionally we decided to no longer use in-code database upgrade to update database schema of MUC component and rather provide separate schema files for every supported database.

To continue usage of new versions of MUC component it is required to manually load new component database schema, see the section called “Preparation of database” section for informations about that.

Moreover we no longer store rooms list and configurations inside UserRepository of default Tigase XMPP Server database. Instead we use separate tables which are part of new schema. Due to that it is required to execute converter which will move room configurations from UserRepository to new tables. It needs to be executed AFTER new database schema is loaded to database.


If you used separate database to store messages history we strongly suggest to use same database for new schema and storage of rooms configurations as well. In other case message history will not be moved to new schema.

In database directory of installation package there is a muc-db-migrate utility which takes 2 parameters:

-in 'jdbc_uri_to_user_repository'
To set JDBC URI of UserRepository
-out 'jdbc_uri_to_muc_database'
To set JDBC URI of database with loaded database schema.


Both JDBC uri’s may be the same.


During this opeartion it removes room configurations from old storage.

UNIX / Linux / OSX
database/ -in 'jdbc:mysql://localhost/database1' -out 'jdbc:mysql://localhost/database2'
database/muc-db-migrate.cmd -in 'jdbc:mysql://localhost/database1' -out 'jdbc:mysql://localhost/database2'