[Mailman-Developers] importing mailman lists...
Barry A. Warsaw
barry@zope.com
Fri, 12 Oct 2001 17:44:46 -0400
>>>>> "RJ" == Ron Jarrell <jarrell@vt.edu> writes:
>> I've been asked to serve a couple of lists on my production mm
>> server (2.0.5) that are coming from a 1.0 server. If I just
>> accept a tar of the list directories, will a make update do the
>> right thing, or am I screwed by the fact that the other lists
>> have already been upgraded from 1.0 to 2.0.5 over the years?
RJ> I decided that I could hack update with some work to just
RJ> forcibly do a 1.0 to 2.0.5 upgrade on just those lists... Or,
RJ> plan B, which is what I actually ended up doing because I
RJ> figured it'd be faster, was set up another directory, grap the
RJ> Release_1_0 cvs image, build and install that, drop the lists
RJ> into it, then install the Release_2_5 image on top of it, and
RJ> let update do what it normally does... Since I could do it
RJ> all in the background it took less of my real time than
RJ> hacking the python would...
That was probably the best approach, because bin/update (what "make
update" runs), won't do anything if data/last_mailman_version
indicates you're already running the current version. MM2.1's
bin/update has a -f/--force flag to force the update even if
last_mailman_version doesn't indicate that its necessary.
Then again, you probably don't need bin/update anyway. This script's
most important task is to update things that aren't related to a
list's config.db schema, such as new directories that have cropped up,
moved files, template duplication removal, changes to qfile schemas,
etc.
The config.db/config.pck list schema load and store routines are
designed to automatically update them if necessary. It does this by
comparing an integer in the database file against DATA_FILE_VERSION
and then migrating the schema as necessary. So it should be the case
that if you have an older list directory, and you unpack it in a newer
Mailman installation directory, it'll get upgraded the first time the
list is referenced in an email or web hit.
You can force this by using bin/withlist:
% python -i bin/withlist -l myoldlist
Loading list myoldlist (locked)
>>> m.Save()
>>> m.Unlock()
>>> ^D
Finalizing
One caution is that MM1.0 is really old, and a direct update from it
to MM2.0.6 has never been tested, although upgrades along the way
dating back to 1.0b8 (I believe) have been tested. It's always a good
idea to install a copy of the list and make sure it works before
turning off the old list.
-Barry