· 8 years ago · Oct 01, 2017, 01:08 AM
1#!/bin/bash
2set -e
3
4cd ~/mailcow-dockerized
5
6DBUSER=mailcow
7DBPASS=xxxxxxxxxxxxxxxxxxxx
8DBNAME=mailcow
9DBHOST=mailcow.lxd
10
11TBLOLD=mailbox
12TBLNEW=mailbox_new
13IMPORTTBLNAMES="sogo_user_profile alias alias_domain domain domain_admins $TBLNEW quota2 sender_acl"
14
15SSHPASS=xxxxxxxxxxxxxxxx
16
17SQLFILE=/tmp/mailcow_legacy_import.sql
18OLDMAILPATH=root@mailcow.lxd:/var/vmail
19NEWMAILPATH=/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
20
21function syncmail {
22 sshpass -p $SSHPASS rsync -azP --delete $OLDMAILPATH/$1/ $NEWMAILPATH/$1/
23 sshpass -p $SSHPASS rsync -azP --delete $OLDMAILPATH/sieve/ $NEWMAILPATH/sieve/
24}
25
26mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "drop table if exists $TBLNEW"
27mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "create table $TBLNEW like $TBLOLD"
28mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "insert $TBLNEW select * from $TBLOLD;"
29
30mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "ALTER TABLE $TBLNEW 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;"
31mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e 'ALTER TABLE '$TBLNEW' 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`;'
32
33mysqldump --replace --no-create-info --default-character-set=utf8mb4 \
34 --host ${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME} \
35 $IMPORTTBLNAMES > $SQLFILE
36
37mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "drop table $TBLNEW"
38
39sed -i -e 's/'$TBLNEW'/'$TBLOLD'/g' $SQLFILE
40
41source mailcow.conf
42
43docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < $SQLFILE
44rm $SQLFILE
45
46#rm $NEWMAILPATH/* -rf
47
48docker-compose exec dovecot-mailcow doveadm quota recalc -A
49
50syncmail /
51
52docker-compose exec dovecot-mailcow doveadm quota recalc -A
53
54docker-compose restart
55
56cd ~