Advertisement
Guest User

Untitled

a guest
Sep 30th, 2017
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. cd ~/mailcow-dockerized
  5.  
  6. DBUSER=mailcow
  7. DBPASS=xxxxxxxxxxxxxxxxxxxx
  8. DBNAME=mailcow
  9. DBHOST=mailcow.lxd
  10.  
  11. TBLOLD=mailbox
  12. TBLNEW=mailbox_new
  13. IMPORTTBLNAMES="sogo_user_profile alias alias_domain domain domain_admins $TBLNEW quota2 sender_acl"
  14.  
  15. SSHPASS=xxxxxxxxxxxxxxxx
  16.  
  17. SQLFILE=/tmp/mailcow_legacy_import.sql
  18. OLDMAILPATH=root@mailcow.lxd:/var/vmail
  19. NEWMAILPATH=/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data
  20.  
  21. function 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.  
  26. mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "drop table if exists $TBLNEW"
  27. mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "create table $TBLNEW like $TBLOLD"
  28. mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "insert $TBLNEW select * from $TBLOLD;"
  29.  
  30. mysql -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;"
  31. mysql -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.  
  33. mysqldump --replace --no-create-info --default-character-set=utf8mb4 \
  34. --host ${DBHOST} -u${DBUSER} -p${DBPASS} ${DBNAME} \
  35. $IMPORTTBLNAMES > $SQLFILE
  36.  
  37. mysql -h $DBHOST -u $DBUSER -p$DBPASS $DBNAME -e "drop table $TBLNEW"
  38.  
  39. sed -i -e 's/'$TBLNEW'/'$TBLOLD'/g' $SQLFILE
  40.  
  41. source mailcow.conf
  42.  
  43. docker exec -i $(docker-compose ps -q mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < $SQLFILE
  44. rm $SQLFILE
  45.  
  46. #rm $NEWMAILPATH/* -rf
  47.  
  48. docker-compose exec dovecot-mailcow doveadm quota recalc -A
  49.  
  50. syncmail /
  51.  
  52. docker-compose exec dovecot-mailcow doveadm quota recalc -A
  53.  
  54. docker-compose restart
  55.  
  56. cd ~
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement