[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