### Create database ´´´ cd /opt/docker/db/utils/ ./create_db.sh ejabberd ´´´ ### Get schema and populate tables ´´´ docker cp ejabberd:/home/ejabberd/database/mysql.sql . docker cp mysql.sql db:/ rm mysql.sql docker exec db sh -c 'mysql -D ejabberd -p$MYSQL_ROOT_PASSWORD < /mysql.sql' docker exec db sh -c 'echo "SHOW TABLES;" | mysql -D ejabberd -p$MYSQL_ROOT_PASSWORD --table' docker exec db sh -c 'rm /mysql.sql' ´´´ ### Backup existing installation, in case something goes wrong ´´´ cd /opt/docker/ejabberd docker compose down cd /opt/docker/ tar cfj ejabberd.tar.bz2 ejabberd ´´´ ### Disable ports for the migration to avoid connections ´´´ cd /opt/docker/ejabberd vi docker-compose.yml ## comment out ports ´´´ ### Setup DB config for ejabberd ´´´ vi /opt/docker/ejabberd/data/conf.custom/db.yml default_db: sql sql_type: mysql sql_server: "db" sql_database: "ejabberd" sql_username: "ejabberd" sql_password: "PutYourSecretPasswordHere" docker compose up -d ´´´ ### Dump Mnesia database and restore in MariaDB ´´´ docker exec ejabberd sh -c 'bin/ejabberdctl --no-timeout export2sql im.s-up.net /tmp/sqldump.sql' docker cp ejabberd:/tmp/sqldump.sql . docker exec ejabberd sh -c 'rm /tmp/sqldump.sql' docker cp sqldump.sql db:/ rm sqldump.sql docker exec db sh -c 'mysql -D ejabberd -p$MYSQL_ROOT_PASSWORD < /sqldump.sql' ´´´ ### Enable ports for the migration to avoid connections ´´´ cd /opt/docker/ejabberd vi docker-compose.yml ## comment out ports ### Debugging: Start a sql shell ´´´ docker exec -it db sh -c 'mysql -D ejabberd -p$MYSQL_ROOT_PASSWORD' ´´´