Dave McGuire writes:
Is there a way to export a list from one Mailman 3 instance and import it into another, on a different machine? Ideally some way to capture its settings, members, members' settings, etc?
All that is in an SQL database. Mailman still manages queues and digests "on disk", so I would
- shut down Mailman completely (but not the RDBMS)
- copy the queues (in $var_dir/queue) and digests (in $var_dir/lists/ *) over to the new installation
- dump the SQL database on the old host in SQL script format
- restore the SQL database on the new host
- restart Mailman
This shouldn't take more than 15-20 minutes, faster if you're handy with all the relevant utilities. The main forseeable issue is Mailman traffic queuing up on the old installation. Depending on your mail routing this may not be a problem:
- same MTA, just point it at the new host and everything will go through when Mailman starts)
- different MTA, before shutting down Mailman reroute Mailman traffic to new MTA where it will queue until Mailan starts
Of course if something is wonky somewhere, you could get an error in dumping or restoring the database. Also if you're changing databases eg from MySQL to Postgres you may need to edit the dump by hand. Don't forget to set your MySQL family databases to handle Unicode correctly (at least older versions would throw exceptions on 4-byte UTF-8 such as emoji).
Main thing is grab your dog-eared copy of the Hitchhiker's Guide to the Galaxy because it has the words "Don't Panic!" printed on the cover in large friendly letters. Everything in Internet mail including Mailman operates on the "store and forward" principle: there's alway a valid copy of your mail *somewhere*. If you've made "high availability" promises, then you'll need to plan harder to be more confident you can get everything done quickly and correctly the first time, but the above plan works.