Odhiambo Washington writes:
The idea is to (if possible) not change anything at all. I will be serving the list using the original domain.
Fine. I just didn't want to assume anything.
I am hoping that should not be necessary.
It's not. That's one of the major things that MM3 does that MM2 does not: handle multiple domains properly.
I actually had thought it wouldn't be complex doing this until I sat down and said wait - there is a DB involved :)
- (If the DB engines are different) Dump both databases in text
format (ie, scripts of SQL commands). Check to see how they differ.
The DB is MySQL. My running setup uses MariaDB. I am not getting what you mean here by how they differ.
You didn't say that before. I tend to assume PostgreSQL because that's what I use.
I don't know if MySQL and MariaDB have different features that have different syntax, etc. That's what you're looking for. Any commands that are *not SQL* used to configure the database engine itself (for example the utf8mb4 parameter which MySQL has but PostgreSQL does not, does MariaDB need it?) Also any non-standard SQL stuff (mostly around varchar/text types I think).
- Adapt the foreign database to its new environment with search and
replace.
If going with what I have mentioned above, is this step still necessary?
Isn't one installation using 'mailman' and 'mailmanweb' databases, while the other only 'mailman'? You'll need to deal with that at least I suppose.
- (Optional if your name is "Daredevil") Create a new Mailman suite install using your current configs, preferably in a new VM or set of containers.
I was thinking about this as one way of testing the situation, much as it is quite involving.
Fred Brooks famously put it this way: "Build one to throw away. You will anyway. The only question is whether you deliver the first version to the customer." ;-)
Suppose I just do: that I am yet to understand here around SITE_ID when you have multiple
- Create the new list on my server using the inherited domain and configure it appropriately,
- Configure Django to handle the different domains (there is something
sites!)
You just add them in the Django admin page. Problems come in when you delete the original example.com placeholder domain. I think you probably need to add SITE_ID=0 to settings.py so the Django figures out the site from the HTTP header rather than just assuming it's the same Postorius site for all lists.
- Extract the users from the list and subscribe them afresh (I can shoot an email to let them know the ML had to be moved so they can set their preferences again)
- Import the archives of the list I should more or less achieve the migration, no?
I think that should work.
What about setting up on /opt/mailman2 a complete replica of the list? That'd be the real "Daredevil" :)
This will also work, I'm sure. But we'd be embarrassed after going to the trouble of making Mailman 3 handle multiple domains. Also you'd need separate instances of Mailman running, with their own /etc/mailman3-1 and /etc/mailman3-2, and more important you'd double the RSS and VM requirements by running two instances.