Skip to content

Instantly share code, notes, and snippets.

@brian-maloney
brian-maloney / pfa-to-mailcow.sql
Last active March 17, 2021 17:41
Convert postfixadmin 2.1.0 database to mailcow database
INSERT INTO mailcow.domain(created, modified, domain, description, backupmx, relay_all_recipients, active) SELECT IF(YEAR(created)=0000, DATE(modified), DATE(created)), DATE(modified), domain, description, backupmx, backupmx, active FROM hosting.domain;
INSERT INTO mailcow.mailbox(username, password, name, local_part, domain, attributes, created, modified, active)
SELECT
username,
CASE WHEN LEFT(password, 3)='$1$' THEN CONCAT('{MD5-CRYPT}', password) WHEN LEFT(password, 3)='$6$' THEN CONCAT('{SHA512-CRYPT}', password) END,
name, LEFT(username, LOCATE('@', username)-1), domain,
'{"force_pw_update":"0","tls_enforce_in":"0","tls_enforce_out":"0","sogo_access":"1","mailbox_format":"maildir:","quarantine_notification":"hourly"}',
IF(YEAR(created)=0000, DATE(modified), DATE(created)), DATE(modified), active
FROM hosting.mailbox;
INSERT INTO mailcow.quota2(username) SELECT username FROM hosting.mailbox;
@brian-maloney
brian-maloney / pfa-to-mailu.sql
Created July 3, 2020 15:58
Convert postfixadmin 2.1.0 database to mailu database
INSERT INTO mailu.domain(created_at, updated_at, name, comment) SELECT IF(YEAR(created)=0000, DATE(modified), DATE(created)), DATE(modified), domain, description FROM hosting.domain WHERE active = 1 AND backupmx = 0;
INSERT INTO mailu.relay(created_at, updated_at, name, smtp, comment) SELECT IF(YEAR(created)=0000, DATE(modified), DATE(created)), DATE(modified), domain, CONCAT('mail.', domain), description FROM hosting.domain WHERE active = 1 AND backupmx = 1;
INSERT INTO
mailu.user(created_at, updated_at, localpart, password, quota_bytes, global_admin, enable_imap, enable_pop, forward_enabled, reply_enabled, displayed_name, spam_enabled, domain_name, email)
SELECT IF(YEAR(created)=0000, DATE(modified), DATE(created)), DATE(modified), LEFT(username, LOCATE('@', username)-1), password, 0, 0, 1, 1, 0, 0, name, 1, domain, username
FROM hosting.mailbox WHERE active = 1;
INSERT INTO
mailu.alias(created_at, updated_at, localpart, destination, domain_name, email)
SELECT IF(YEAR(created)=0000, DATE(modified), DATE(cre
warn 2019-01-02T16:16:52.440 thread-1 mongo_db_plugin.cpp:540 handle_mongo_excepti ] mongo logic error, add action traces, line 875, code 22, invalid document for insert: empty key: generic server error
warn 2019-01-02T16:16:52.442 thread-1 mongo_db_plugin.cpp:540 handle_mongo_excepti ] mongo logic error, trans_traces insert: {"id":"8b7787c5c9ed22a893f6331a50f2ed04047943a82bf1caadd4d32a0cd65a655e","block_num":35347843,"block_time":"2019-01-02T16:16:52.000","producer_block_id":"021b5d8387f9c5c0d96111ff1960cf00f3b48e361f76f8c6d3991f5db4051305","receipt":{"status":"executed","cpu_usage_us":1015,"net_usage_words":22},"elapsed":2634,"net_usage":176,"scheduled":false,"action_traces":[{"receipt":{"receiver":"eoszealbank1","act_digest":"7330e3e881851cb40fa1a5ed59d6eb3ca18b84a3f1a4139402e216b8bbc60ca3","global_sequence":3595349030,"recv_sequence":39519,"auth_sequence":[["eoszealbank1",75372]],"code_sequence":3,"abi_sequence":3},"act":{"account":"eoszealbank1","name":"resolvebet","authorization":[{"acto