[Dovecot] IMAP to Maildir Migration preserving UIDs?
Gedalya
gedalya at gedalya.net
Sat Jan 28 00:35:40 EET 2012
On 01/26/2012 08:00 PM, Timo Sirainen wrote:
> On 27.1.2012, at 2.57, Gedalya wrote:
>
>>>> # doveadm -o imapc_user=jedi1 at example.com -o imapc_password=***** import -u jedi1 at example.com imapc: "" all
>>>> doveadm(jedi1 at example.com): Error: Copying box=INBOX uid=1 failed: Message GUID not available in this server (guid)
>>> Fixed: http://hg.dovecot.org/dovecot-2.1/rev/f3e000992f61
>>>
>>> But doveadm import doesn't preserve UIDs.
>> OK - I got a different error from running doveadm backup on a non-broken account - see my other email :)
> The GUID error is the same. The crash is probably the result of it. Try if upgrading fixes it.
>
This is what I ended up doing. I have the production machine acting as a
dovecot imap server, and as a proxy for accounts not yet migrated.
Running dovecot 2.0.15, with directly attached 6 TB of storage.
Per Timo's instructions, I set up a quick VM running debian wheezy and
the latest dovecot 2.1, and copied the config from the production server
with tiny modifications, and connected it to the same mysql user
database. I gave this machine the same hostname as the production
machine, just so that the maildir filenames end up looking neat. I don't
know if this has anything more than psychological value :-)
I mounted the storage from the production machine (sshfs surprisingly
didn't seem slower than NFS) and set up dovecot 2.1 to find the
mailboxes under there, then things like
doveadm -o imapc_user=jedi1 at example.com -o imapc_password=****** backup
-u jedi1 at example.com -R imapc:/tmp/imapc
started doing the job. No output, no problems.
So far the only glitch I noticed is that I have dovecot autocreate a
Spam folder and when starting a Windows Live Mail which was reading a
proxied account, after it was migrated and served by dovecot, it doesn't
find the Spam folder until I click "Download all folders". We have
thousands of mailboxes being read from every conceivable client, so
there will be more tiny issues like this. Can't wait to test a blackberry.
Other than that, things work as intended - UID and UIDVALIDITY seem to
be preserved, the clients don't seem to notice the migration or react to
it in any way.
What's left is to wrap around this a proper process to lock the mailbox,
essentially put the right things in the database in the beginning and in
the end of the process. Looks beautiful.
More information about the dovecot
mailing list