Toastie 1 year ago
parent
commit
8aa56bd0b1
1 changed files with 63 additions and 0 deletions
  1. 63 0
      README.db-migration.md

+ 63 - 0
README.db-migration.md

@@ -0,0 +1,63 @@
+
+### 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'
+ยดยดยด