mirror of
https://github.com/postfixadmin/postfixadmin.git
synced 2024-09-19 19:22:14 +02:00
see: https://github.com/postfixadmin/postfixadmin/issues/468 - token docs on possible migration
This commit is contained in:
parent
5be7468461
commit
cc2e049050
56
DOCUMENTS/Migration.md
Normal file
56
DOCUMENTS/Migration.md
Normal file
@ -0,0 +1,56 @@
|
||||
# Migrating to Postfixadmin from other products
|
||||
|
||||
## From Postfix
|
||||
|
||||
Where a database structure like this exists :
|
||||
|
||||
See also: https://github.com/postfixadmin/postfixadmin/issues/468
|
||||
|
||||
|
||||
```SQL
|
||||
|
||||
CREATE TABLE `virtual_domains` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) CHARACTER SET latin1 NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
|
||||
|
||||
CREATE TABLE `virtual_aliases` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` int(11) NOT NULL,
|
||||
`source` varchar(40) CHARACTER SET latin1 NOT NULL,
|
||||
`destination` varchar(80) CHARACTER SET latin1 NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `domain_id` (`domain_id`),
|
||||
CONSTRAINT `virtual_aliases_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `virtual_domains` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=465 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
|
||||
|
||||
CREATE TABLE `virtual_users` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` int(11) NOT NULL,
|
||||
`user` varchar(40) CHARACTER SET latin1 NOT NULL,
|
||||
`password` varchar(32) CHARACTER SET latin1 NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `UNIQUE_EMAIL` (`domain_id`,`user`),
|
||||
CONSTRAINT `virtual_users_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `virtual_domains` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;
|
||||
|
||||
```
|
||||
|
||||
## Possible route
|
||||
|
||||
You'll need to modify the below to match how your mailboxes are stored on disk (the maildir).
|
||||
|
||||
It assumes the password hash format is compatible. If not some sort of blanket reset is probably required.
|
||||
|
||||
### Migrate domains
|
||||
|
||||
`insert into domain (domain, description, transport) select name, name, 'virtual' from postfix_legacy.virtual_domains;`
|
||||
|
||||
### Migrate users
|
||||
|
||||
` insert into mailbox (username, password, name, maildir, local_part, domain) select concat(user, '@', d.name), password, user, concat(d.name, '/', user), user, d.name FROM postfix_legacy.virtual_users INNER JOIN postfix_legacy.virtual_domains d ON postfix_legacy.virtual_users.domain_id = d.id;`
|
||||
|
||||
### Migrate Aliases
|
||||
|
||||
`insert into alias (address, goto, domain) select concat(a.source, '@', d.name), a.destination, d.name FROM postfix_legacy.virtual_aliases a INNER JOIN postfix_legacy.virtual_domains d ON d.id = a.domain_id;`
|
Loading…
Reference in New Issue
Block a user