the official method described in the post you linked to worked well enough for me on a handful of servers. However, the whole process is somewhat frail due to how installations can differ in subtle but hard to predict ways.
Another way might be to use
imapsync which requires both the old and the new server to be up and running at the same time — meaning you’ll have to migrate from one server to another one as running both Cyrus and Dovecot on a single UCS server won’t be possible.
imapsync connects to both servers via the IMAP protocol and copies everything it finds (can be limited via command line options, e.g. in order to exclude certain folders such as trash or spam folders, of course). This in turn means that authentication has to work on both ends (you’ll need to tell
imapsync which accounts & passwords to use for logging in). You can circumvent that by configuring both Cyrus & Dovecot to accept special admin accounts which can log in as any user.
All of that is rather involved. The script provided in the linked article really is the easiest way to migrate those mails — it’s much faster as it only operates on the local file system instead of talking to two servers via IMAP, you don’t have to concern yourself with authentication issues etc., and you’ll always run into issues such as folder subscriptions not being 100% the same in both systems no matter which method you chose.
If you’re having trouble with missing index files on the Cyrus side you might look into recreating said indexes with the tools Cyrus offers (
cyrrecover or something like that? It’s been a while…).
I’m not sure which tool you mean by
dsync. The one that comes with Dovecot? That’s a tool for synchronizing & converting existing Dovecot mailboxes. It doesn’t support converting Cyrus mailboxes to Dovecot mailboxes as far as I know.