Migration
Warning
Please note that this site is currently work in progress.
Migrating from Kolab 16
Migrating from Kolab 16 implies migrating the data, and converting from the Kolab 3 storage format to the Kolab 4 storage format.
While it is technically possible to migrate in-place, the recommended way to migrate is to import the data, and convert it during the import, using the Kolab 4 migration tooling.
This migration will copy a user account over IMAP/CalDAV/CarDAV from the source-server to the internal target server.
Prerequisites:
- The target user must already exist
kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "kolab3://$SOURCEUSER:$SOURCEPASSWORD@$SOURCE_KOLAB_SERVER?dav_protocol=dav&dav_host=roundcube&dav_path=/dav" "kolab://$TARGETUSER:$TARGETPASSWORD@imap?dav_protocol=dav&dav_path=/dav"
The above migration will execute the following steps:
- Email will be migrated via IMAP
- Calendars and Tasks will be migrated via CalDAV
- Contacts will be migrated via CardDAV
- Notes will not be migrated
- Tags will be extracted from Kolab Configuration Objects, and applied as IMAP Tags
The migration can be re-run to import new data and flag changes, but it will not remove deleted messages/folders.
IMAP migration
This migration will copy all folder from a source account to a target account. It is assumed that the source server is an external location, and the target server is the internal imap instance.
Prerequisites:
- The target user must already exist
With cyrus proxy authorization on the source server:
kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "imaps://cyrus-admin:$ADMIN_PASSWORD@$SOURCE_IMAP_SERVER:993?user=$SOURCEUSER" "imap://cyrus-admin:$TARGET_ADMIN_PASSWORD@imap?user=$TARGETUSER"
Without cyrus proxy authorization on the source server:
kubectl exec -i --tty=false deployment/horizon -- env APP_DEBUG=0 php -dmemory_limit=512M ./artisan data:migrate --force --sync "imaps://$SOURCEUSER:$SOURCEPASSWORD@$SOURCE_IMAP_SERVER:993" "imap://cyrus-admin:$TARGET_ADMIN_PASSWORD@imap?user=$TARGETUSER"