diff options
author | ChaosKid42 <christoph.scholz@gmail.com> | 2020-04-28 16:22:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-28 16:22:42 +0200 |
commit | abc3260e750348d01996598309b6701469f58863 (patch) | |
tree | 9f49191545f325a171ff069eb0a3b43fc31dfa3f /test/docker | |
parent | Merge pull request #3235 from weiss/xep-0215 (diff) |
enable tests with mssql-backend (#3136)
Diffstat (limited to 'test/docker')
-rw-r--r-- | test/docker/README.md | 14 | ||||
-rw-r--r-- | test/docker/db/mssql/initdb/initdb_mssql.sql | 23 | ||||
-rw-r--r-- | test/docker/docker-compose.yml | 15 |
3 files changed, 51 insertions, 1 deletions
diff --git a/test/docker/README.md b/test/docker/README.md index 22324a6e0..24c675cab 100644 --- a/test/docker/README.md +++ b/test/docker/README.md @@ -4,7 +4,7 @@ You can start the Docker environment with Docker Compose, from ejabberd repository root. -The following command will launch MySQL, PostgreSQL, Redis and keep the console +The following command will launch MySQL, MSSQL, PostgreSQL, Redis and keep the console attached to it. ``` @@ -15,6 +15,17 @@ mkdir test/docker/db/postgres/data You can stop all the databases with CTRL-C. +## Creating database for MSSQL + +The following commands will create the necessary login, user and database, will grant rights on the database in MSSQL and create the ejabberd schema: + +``` +docker cp test/docker/db/mssql/initdb/initdb_mssql.sql ejabberd-mssql:/ +docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -i /initdb_mssql.sql +docker cp sql/mssql.sql ejabberd-mssql:/ +docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -i /mssql.sql +``` + ## Running tests Before running the test, you can ensure there is no running instance of Erlang common test tool. You can run the following @@ -43,4 +54,5 @@ If you want to clean the data, you can remove the data directories after the `do ``` rm -rf test/docker/db/mysql/data rm -rf test/docker/db/postgres/data +docker volume rm docker_mssqldata ``` diff --git a/test/docker/db/mssql/initdb/initdb_mssql.sql b/test/docker/db/mssql/initdb/initdb_mssql.sql new file mode 100644 index 000000000..a9ec5a5a8 --- /dev/null +++ b/test/docker/db/mssql/initdb/initdb_mssql.sql @@ -0,0 +1,23 @@ +USE [master] +GO + +IF DB_ID('ejabberd_test') IS NOT NULL + set noexec on -- prevent creation when already exists + +CREATE DATABASE ejabberd_test; +GO + +USE ejabberd_test; +GO + +CREATE LOGIN ejabberd_test WITH PASSWORD = 'ejabberd_Test1'; +GO + +CREATE USER ejabberd_test FOR LOGIN ejabberd_test; +GO + +GRANT ALL TO ejabberd_test; +GO + +GRANT CONTROL ON SCHEMA ::dbo TO ejabberd_test; +GO diff --git a/test/docker/docker-compose.yml b/test/docker/docker-compose.yml index f98612036..c6b800dad 100644 --- a/test/docker/docker-compose.yml +++ b/test/docker/docker-compose.yml @@ -17,6 +17,18 @@ services: MYSQL_USER: ejabberd_test MYSQL_PASSWORD: ejabberd_test + mssql: + image: mcr.microsoft.com/mssql/server + container_name: ejabberd-mssql + volumes: + - mssqldata:/var/opt/mssql + restart: always + ports: + - 1433:1433 + environment: + ACCEPT_EULA: Y + SA_PASSWORD: ejabberd_Test1 + postgres: image: postgres:latest container_name: ejabberd-postgres @@ -35,3 +47,6 @@ services: container_name: ejabberd-redis ports: - 6379:6379 + +volumes: + mssqldata: |