[Mailman-Users] Mailman MySQL backend migration question

Mark Sapiro mark at msapiro.net
Thu Jul 7 03:55:43 CEST 2011


Mark Sapiro wrote:
>
>------------------------------------------------------------
>from Mailman import mm_cfg
>from Mailman import OldStyleMemberships as OSM
>
>def move_members(mlist):
>    if not mlist.Locked():
>        mlist.Lock()
>    for member in OSM.getMembers(mlist):
>        if mlist.isMember(member):
>            continue
>        cpmember = OSM.getMemberCPAddress(mlist, member)
>        digest = OSM.getMemberOption(mlist, member, mm_cfg.Digests)
>        password = OSM.getMemberPassword(mlist, member)
>        language = OSM.getMemberLanguage(mlist, member)
>        realname = OSM.getMemberName(mlist, member)
>        mlist.addNewMember(cpmember, digest=digest, password=password,
>                           language=language, realname=realname)
>        mlist.setDeliveryStatus(member,
>                                OSM.getDeliveryStatus(mlist, member))
>        for flag in (mm_cfg.DontReceiveOwnPosts,
>                     mm_cfg.AcknowledgePosts,
>                     mm_cfg.DisableMime,
>                     mm_cfg.ConcealSubscription,
>                     mm_cfg.SuppressPasswordReminder,
>                     mm_cfg.ReceiveNonmatchingTopics,
>                     mm_cfg.Moderate,
>                     mm_cfg.DontReceiveDuplicates,
>                    ):
>            mlist.setMemberOption(member, flag,
>                            OSM.getMemberOption(mlist, member, flag))
>        mlist.setMemberTopics(member,
>                              OSM.getMemberTopics(mlist, member))
>        OSM.removeMember(mlist, member)
>        mlist.Save()
>        mlist.Unlock()
>------------------------------------------------------------


I forgot to note that the above was untested and without warranty. In
particular, the last two lines

        mlist.Save()
        mlist.Unlock()

should only be indented 4 spaces, not 8 as in

    mlist.Save()
    mlist.Unlock()

That change will at least give it a chance of processing more than one
old member before dying.

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan



More information about the Mailman-Users mailing list