From 7bc0ca6bf5e0d0b9d8d430ee2e12e4468948b9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9?= Date: Thu, 19 Apr 2018 11:55:51 +0200 Subject: [PATCH] Remove migration guide --- docs/migrate-mc014.md | 103 ------------------------------------------ mkdocs.yml | 1 - 2 files changed, 104 deletions(-) delete mode 100644 docs/migrate-mc014.md diff --git a/docs/migrate-mc014.md b/docs/migrate-mc014.md deleted file mode 100644 index 6c60c9d9b..000000000 --- a/docs/migrate-mc014.md +++ /dev/null @@ -1,103 +0,0 @@ -!!! warning - Please be adviced that this guide is a first draft. mailcow: dockerized changed quite a lot on its DB configuration. It now uses the InnoDB file format `Barracuda` and the `utf8mb4` character set. There is also some change to the DB / TABLE structure. - -!!! info - Also note that this guide doesn't touch on the users settings like *Spamlevels*, *TLS Settings*, etc. nor the export / import of your roundcube or SOGo settings. - - Lastly please check the section on how to [import / restore](u_e-backup_restore-maildir/#restore) your maildir backup to get an idea how to migrate your mails. - -## Create mailcow db backups - -First you need to modify the table `mailcow`. mailcow: dockerized adds three and moves two existing columns in the table `mailbox`. The columns `tls_enforce_in` and `tls_enforce_out` get moved two rows up (behind `domain`). The columns `key`, `multiple_bookings` and `wants_tagged_subject` need to be added after `tls_enforce_out`. - -It should look like this: - -``` -MariaDB [mailcow]> desc mailbox; -+----------------------+--------------+------+-----+-------------------+-----------------------------+ -| Field | Type | Null | Key | Default | Extra | -+----------------------+--------------+------+-----+-------------------+-----------------------------+ -| username | varchar(255) | NO | PRI | NULL | | -| password | varchar(255) | NO | | NULL | | -| name | varchar(255) | YES | | NULL | | -| maildir | varchar(255) | NO | | NULL | | -| quota | bigint(20) | NO | | 0 | | -| local_part | varchar(255) | NO | | NULL | | -| domain | varchar(255) | NO | MUL | NULL | | -| tls_enforce_in | tinyint(1) | NO | | 0 | | -| tls_enforce_out | tinyint(1) | NO | | 0 | | -| kind | varchar(100) | NO | | | | -| multiple_bookings | tinyint(1) | NO | | 0 | | -| wants_tagged_subject | tinyint(1) | NO | | 0 | | -| created | datetime | NO | | CURRENT_TIMESTAMP | | -| modified | datetime | YES | | NULL | on update CURRENT_TIMESTAMP | -| active | tinyint(1) | NO | | 1 | | -+----------------------+--------------+------+-----+-------------------+-----------------------------+ -``` - -You can do this with a UI like [Adminer](https://www.adminer.org/#download) or use the MySQL CLI like : - -``` -MariaDB [mailcow]> ALTER TABLE mailbox MODIFY COLUMN tls_enforce_in TINYINT(1) NOT NULL DEFAULT '0' AFTER domain, -MODIFY COLUMN tls_enforce_out TINYINT(1) NOT NULL DEFAULT '0' AFTER tls_enforce_in; -MariaDB [mailcow]> ALTER TABLE mailbox ADD COLUMN `kind` VARCHAR(255) NOT NULL AFTER `tls_enforce_out`, -ADD COLUMN `multiple_bookings` TINYINT(1) NOT NULL DEFAULT '0' AFTER `kind`, -ADD COLUMN `wants_tagged_subject` TINYINT(1) NOT NULL DEFAULT '0' AFTER `multiple_bookings`; -MariaDB [mailcow]> DESC mailbox; -``` - -When this is done we can backup the tables: - -```bash -# Load your mysql variables into environment -DBHOST=$(grep database_host /var/www/mail/inc/vars.inc.php | cut -d'"' -f2) -DBNAME=$(grep database_name /var/www/mail/inc/vars.inc.php | cut -d'"' -f2) -DBUSER=$(grep database_user /var/www/mail/inc/vars.inc.php | cut -d'"' -f2) -DBPASS=$(grep database_pass /var/www/mail/inc/vars.inc.php | cut -d'"' -f2) - -# Backup your tables -mysqldump --replace --no-create-info --default-character-set=utf8mb4 \ - --host ${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME} \ - alias alias_domain domain domain_admins mailbox quota2 sender_acl > backup_mailcow.sql -``` - -!!! Info - - **--replace**: Write `REPLACE` statements rather than `INSERT` statements - - **--no-create-info**: Don't write `CREATE TABLE` statements. - - **--default-character-set** make sure our exported default charset is *utf8mb4*. - - -## Prepare mailcow: dockerized - -To initiate your fresh installed database, visit **https://${MAILCOW_HOSTNAME}** with a browser of your choice. Check if the DB is initiated correctly afterwards: - -``` -# source mailcow.conf -# docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -MariaDB [mailcow]> show tables; -+-------------------------------+ -| Tables_in_mailcow | -+-------------------------------+ -| admin | -| alias | -[...] -``` - -## Import your backups: - -``` -# source mailcow.conf -# docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_mailcow.sql -``` - -Recalculate used quota with `doveadm`: - -``` -# docker-compose exec dovecot-mailcow doveadm quota recalc -A -``` - -Restart services: - -``` -# docker-compose restart -``` diff --git a/mkdocs.yml b/mkdocs.yml index 4454c851d..bd420452b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -21,7 +21,6 @@ pages: - 'Prerequisites': - 'Prepare Your System': 'prerequesite-system.md' - 'DNS Setup': 'prerequesite-dns.md' -- 'Migrating from mailcow 0.14': 'migrate-mc014.md' - 'Installation & Update': - 'Installation': 'install.md' - 'Update': 'install-update.md'