From: Kevin C. <ke...@us...> - 2005-04-14 15:22:34
|
Update of /cvsroot/mailmanager/mailmanager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8088 Modified Files: Tag: db-backend migration.py Log Message: Wrapped a lot of the migration to do unicode conversions. This fixes various issues with the translation from zodb to psycodb, which was breaking for some character sets in the existing zodb data. Also added in fixing up the ticket id serial numbers once migration is complete. Index: migration.py =================================================================== RCS file: /cvsroot/mailmanager/mailmanager/Attic/migration.py,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -d -r1.1.2.8 -r1.1.2.9 --- migration.py 14 Apr 2005 12:18:16 -0000 1.1.2.8 +++ migration.py 14 Apr 2005 15:22:22 -0000 1.1.2.9 @@ -97,15 +97,15 @@ 'from')) self.sql.addTicket(id=ticket.id, subject=self.getHeader(zmsg.msg, 'subject'), - from_name=fname, - from_email=femail, - account_id=account.title, - assigned=ticket.getOwnerTuple()[1], + from_name=self.toUnicode(fname), + from_email=self.toUnicode(femail), + account_id=self.toUnicode(account.title), + assigned=self.toUnicode(ticket.getOwnerTuple()[1], status=ticket.status, priority=ticket.priority, - category0=ticket.category0 or '', - category1=ticket.category1 or '', - category2=ticket.category2 or '', + category0=self.toUnicode(ticket.category0 or ''), + category1=self.toUnicode(ticket.category1 or ''), + category2=self.toUnicode(ticket.category2 or ''), unread=str(bool(ticket.unread))) # Now messages in each ticket for message in ticket.objectValues(): @@ -119,15 +119,15 @@ self.sql.addMessage(id=id, ticket_id=ticket.id, message_id=self.getHeader(msg,'message-id'), - from_name=fname, - from_email=femail, - subject=self.getHeader(msg, 'subject'), - msg_date=message.getDate(date_format), - msg_to=self.getHeader(msg, 'to'), - cc=self.getHeader(msg, 'cc'), + from_name=self.toUnicode(fname), + from_email=self.toUnicode(femail), + subject=self.toUnicode(self.getHeader(msg, 'subject')), + msg_date=self.toUnicode(message.getDate(date_format)), + msg_to=self.toUnicode(self.getHeader(msg, 'to')), + cc=self.toUnicode(self.getHeader(msg, 'cc')), bcc='', - reply_to=self.getHeader(msg, 'reply-to'), - raw_headers=raw_headers, + reply_to=self.toUnicode(self.getHeader(msg, 'reply-to')), + raw_headers=self.toUnicode(raw_headers), body=self.toUnicode(message.body, message._body_charset), # Unfortunately we didn't store the encoding @@ -136,7 +136,7 @@ # And finally the attachments in the messages for attach in message.objectValues(): self.sql.addAttachment(message_id=id, - title=attach.title, + title=self.toUnicode(attach.title), content_type=attach.getContentType(), is_file=attach.isfile, body=Binary(attach.manage_FTPget()), @@ -148,16 +148,20 @@ # Ticket history for hist in ticket.history: self.sql.addHistory(ticket_id=ticket.id, - subject=hist.get('subject', ''), - assigned=hist.get('assigned', ''), - status=hist.get('status', ''), + subject=self.toUnicode(hist.get('subject', '')), + assigned=self.toUnicode(hist.get('assigned', '')), + status=self.toUnicode(hist.get('status', '')), priority=hist.get('priority', 0), - category0=hist.get('category0', ''), - category1=hist.get('category1', ''), - category2=hist.get('category2', ''), - changed_by=hist.get('by', '')) + category0=self.toUnicode(hist.get('category0', '')), + category1=self.toUnicode(hist.get('category1', '')), + category2=self.toUnicode(hist.get('category2', '')), + changed_by=self.toUnicode(hist.get('by', ''))) # Need date here too ticket._p_changed = None + # Now update the id sequences in the database index, as we + # have been manually specifying ticket id + maxid=self.sql.getMaxTicketId()[0].id + self.sql.setNextTicketId(id=maxid) # Delete old accounts & tickets and the original user folder self.manage_delObjects(ids=['Catalog', 'accounts', 'acl_users']) |