Files
ejabberd/test
Badlop 5575d4e78e Rename New SQL schema to Multihost, and Default to Singlehost
Right now all names are supported, the previous (obsolete)
and the renamed (preferred). The changes relevant to the usage are:

When preparing configuration, the arguments:
  ./configure --enable-new-sql-schema
  ./configure --enable-multihost-sql-schema

When configuring ejabberd, the toplevel options:
  new_sql_schema: true
  sql_schema_multihost: true

When developing source code, the functions:
  ejabberd_sql:use_new_schema()
  ejabberd_sql:use_multihost_schema()
2025-09-17 11:12:38 +02:00
..
2022-01-24 08:02:04 +08:00
2025-04-22 12:27:09 +02:00
2024-05-24 13:21:19 +02:00
2025-06-17 13:10:27 +02:00

You need MySQL, MSSQL, PostgreSQL and Redis up and running.
MySQL should be accepting TCP connections on localhost:3306.
MSSQL should be accepting TCP connections on localhost:1433.
PostgreSQL should be accepting TCP connections on localhost:5432.
Redis should be accepting TCP connections on localhost:6379.
MySQL and PostgreSQL should grant full access to user 'ejabberd_test' with
password 'ejabberd_test' on database 'ejabberd_test'.
MSSQL should grant full access to user 'ejabberd_test' with
password 'ejabberd_Test1' on database 'ejabberd_test'.

Here is a quick setup example:

------------------
  PostgreSQL
------------------
$ psql template1
template1=# CREATE USER ejabberd_test WITH PASSWORD 'ejabberd_test';
template1=# CREATE DATABASE ejabberd_test;
template1=# GRANT ALL PRIVILEGES ON DATABASE ejabberd_test TO ejabberd_test;
# If you disabled the update_sql_schema option, create the schema manually:
# $ psql ejabberd_test -f sql/pg.sql

-------------------
  MySQL
-------------------
$ mysql
mysql> CREATE USER 'ejabberd_test'@'localhost' IDENTIFIED BY 'ejabberd_test';
mysql> CREATE DATABASE ejabberd_test;
mysql> GRANT ALL ON ejabberd_test.* TO 'ejabberd_test'@'localhost';
# If you disabled the update_sql_schema option, create the schema manually:
# $ mysql ejabberd_test < sql/mysql.sql

-------------------
  MS SQL Server
-------------------
$ sqlcmd -U SA -P ejabberd_Test1 -S localhost
1> CREATE DATABASE ejabberd_test;
2> GO
1> USE ejabberd_test;
2> GO
Changed database context to 'ejabberd_test'.
1> CREATE LOGIN ejabberd_test WITH PASSWORD = 'ejabberd_Test1';
2> GO
1> CREATE USER ejabberd_test FOR LOGIN ejabberd_test;
2> GO
1> GRANT ALL TO ejabberd_test;
2> GO
The ALL permission is deprecated and maintained only for compatibility. It DOES NOT imply ALL permissions defined on the entity.
1> GRANT CONTROL ON SCHEMA ::dbo TO ejabberd_test;
2> GO
$ sqlcmd -U ejabberd_test -P ejabberd_Test1 -S localhost -d ejabberd_test -i sql/mssql.sql