Creating the database is the next step. Previously, we had scripts to handle this process, but we now have the advantage of
functions in the tigase.sh
script that can be used. Setting up the database can now be done using a single command.
./scripts/tigase.sh install-schema etc/tigase.conf -T derby -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A rootpass -J admin@jabber.your-great.net -N pass
This command will install tigase using a Derby database on one named tigasedb
hosted on localhost
. The username and password editing the database is tigase_pass
and root
. Note that -J
explicitly adds the administrator, this is highly recommended with the -N
passing the password.
You may customize this command as needed, refer to the install-schema section of the documentation for more information.
On a windows system, you need to call the program directly:
C:\tigase>java -cp "jars/*" tigase.db.util.SchemaManager "install-schema" -T derby -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A rootpass -J admin@jabber.your-great.net -N pass
If this successfully passes, you should see some information printed out
LogLevel: CONFIG 2017-10-12 20:05:47.987 [main] DBSchemaLoader.init() CONFIG: Parameters: [ingoreMissingFiles: false, logLevel: CONFIG, adminPassword: pass, admins: [admin@jabber.your-great.net], dbRootPass: rootpass, dbRootUser: root, dbType: derby, dbName: tigasedbx, dbHostname: localhost, dbUser: tigase_user, dbPass: tigase_pass, useSSL: false, useLegacyDatetimeCode: false, serverTimezone: null, file: null, query: null] Oct 12, 2017 8:05:48 PM tigase.util.DNSResolverDefault <init> WARNING: Resolving default host name: ubuntu took: 7 Oct 12, 2017 8:05:49 PM tigase.db.util.SchemaManager loadSchemas INFO: found 1 data sources to upgrade... Oct 12, 2017 8:05:49 PM tigase.db.util.SchemaManager loadSchemas INFO: begining upgrade... LogLevel: CONFIG 2017-10-12 20:05:49.877 [main] DBSchemaLoader.init() CONFIG: Parameters: [ingoreMissingFiles: false, logLevel: CONFIG, adminPassword: pass, admins: [admin@jabber.your-great.net], dbRootPass: rootpass, dbRootUser: root, dbType: derby, dbName: tigasedbx, dbHostname: null, dbUser: null, dbPass: null, useSSL: null, useLegacyDatetimeCode: false, serverTimezone: null, file: null, query: null] 2017-10-12 20:05:49.877 [main] DBSchemaLoader.validateDBConnection() INFO: Validating DBConnection, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.932 [main] DBSchemaLoader.validateDBConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:50.932 [main] DBSchemaLoader.validateDBConnection() INFO: Connection OK 2017-10-12 20:05:50.933 [main] DBSchemaLoader.validateDBExists() INFO: Validating whether DB Exists, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.936 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:50.937 [main] DBSchemaLoader.lambda$validateDBExists$283() INFO: Exists OK 2017-10-12 20:05:50.939 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-schema-7-2.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.941 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:51.923 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:51.925 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-message-archiving-schema-1.3.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:51.926 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.209 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.210 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-muc-schema-2.5.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.211 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.305 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.306 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-pubsub-schema-3.3.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.307 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.731 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.732 [main] DBSchemaLoader.addXmppAdminAccount() INFO: Adding XMPP Admin Account, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.732 [main] DBSchemaLoader.addXmppAdminAccount() CONFIG: RepositoryFactory.getAuthRepository(null, jdbc:derby:tigasedbx;create=true,{data-repo-pool-size=1}) Oct 12, 2017 8:05:52 PM tigase.db.jdbc.DataRepositoryImpl initialize INFO: Table schema found: jdbc:derby:tigasedbx;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver Oct 12, 2017 8:05:52 PM tigase.db.jdbc.DataRepositoryImpl initialize INFO: Initialized database connection: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.884 [main] DBSchemaLoader.addXmppAdminAccount() INFO: All users added 2017-10-12 20:05:52.884 [main] DBSchemaLoader.postInstallation() INFO: Post Installation, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.891 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.892 [main] DBSchemaLoader.lambda$postInstallation$286() INFO: Finalizing... 2017-10-12 20:05:52.893 [main] DBSchemaLoader.lambda$postInstallation$286() INFO: completed OK 2017-10-12 20:05:52.895 [main] DBSchemaLoader.shutdownDerby() INFO: Validating DBConnection, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:53.129 [main] DBSchemaLoader.withConnection() SEVERE: ===== Failure: Database 'tigasedbx' shutdown. ===== Oct 12, 2017 8:05:53 PM tigase.db.util.SchemaManager loadSchemas INFO: schema upgrade finished! ============================================================================= Schema installation finished Data source: default with uri jdbc:derby:tigasedbx;create=true Checking connection to database ok Checking if database exists ok Loading schema: Tigase XMPP Server (Core), version: 8.0.0 ok Loading schema: Tigase Message Archiving Component, version: 1.3.0 ok Loading schema: Tigase MUC Component, version: 2.5.0 ok Loading schema: Tigase PubSub Component, version: 3.3.0 ok Adding XMPP admin accounts ok Post installation action ok Example etc/config.tdsl configuration file: 'config-type' = 'default' debug = [ 'server' ] 'default-virtual-host' = [ 'ubuntu' ] dataSource () { default () { uri = 'jdbc:derby:tigasedbx;create=true' } } amp () {} bosh () {} c2s () {} eventbus () {} http () {} 'message-archive' () {} monitor () {} muc () {} pubsub () {} s2s () {} ws2s () {} =============================================================================
Note at the end, the script will output a recommended example file. You may use this in conjunction with your written config file, but some settings may not be set using this configuration. Again, it is only an EXAMPLE.