stalwartlabs / mail-server

Secure & Modern All-in-One Mail Server (IMAP, JMAP, POP3, SMTP)
https://stalw.art
3.53k stars 135 forks source link

[enhancement]: Export without blob storage #497

Open hadleyrich opened 1 month ago

hadleyrich commented 1 month ago

Which feature or improvement would you like to request?

I'd like to be able to update from 0.7.3 to 0.8+ using --export and --import without having to transfer all blobs from S3 storage to the local filesystem.

Is your feature request related to a problem?

I'm trying to upgrade from 0.7.3 (docker) to 0.8 (docker).

I have 50GB of mail in S3 storage which ideally I don't want to transfer to the local filesystem which requires both a large temporary amount of space and additional S3 download/upload transfer charges, and a long downtime of Stalwart while waiting on network transfer.

Executing stalwart-mail --config /opt/stalwart-mail/etc/config.toml --help doesn't show any options to support this partial export. I believe the code is here?

https://github.com/stalwartlabs/mail-server/blob/main/crates/common/src/manager/backup.rs

If I'm correct I don't think there is support for this currently. Would this be possible to add please?

Code of Conduct

swerter commented 1 week ago

Ideally, you should be able to export/import each store type (data, blob, lookup, fulltext-index) individually. The complication starts when trying to import only one of the store. Example: Let's say I export the lookup store. At some later point, something goes wrong and I need to re-import the lookup store. How will/should the system behave? There will be a mismatch between the different states of the stores.