diff options
Diffstat (limited to 'tools/migrate_chat.py')
| -rwxr-xr-x | tools/migrate_chat.py | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/tools/migrate_chat.py b/tools/migrate_chat.py index a554d63..1824987 100755 --- a/tools/migrate_chat.py +++ b/tools/migrate_chat.py @@ -92,50 +92,57 @@ if __name__ == '__main__': db = MigrateDB() db.connect() + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] - map_user[row['id']] = user.pk + map_user[row['id']] = user + print "loading rooms..." sj_room = list(db.get_sj_room_table()) map_room = {} for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + print "ERROR in room '%s' does not exist" % row['name'] + map_room[row['id']] = room + # Migrate sj_chat table sj_chat = list(db.get_sj_chat_table()) for row in sj_chat: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['roomid'] in map_room: + room = map_room[row['roomid']] + else: + print "unknown room in migrate: '%d'" % row['roomid'] + continue + try: chat = SJContent.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='text') except SJContent.DoesNotExist: chat = SJContent( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='text') chat.settings = dict(text=row['msg']) chat.save() - row['__sjcontent_text_pk'] = chat.pk - |
