diff options
Diffstat (limited to 'tools/migrate_likes.py')
| -rwxr-xr-x | tools/migrate_likes.py | 89 |
1 files changed, 37 insertions, 52 deletions
diff --git a/tools/migrate_likes.py b/tools/migrate_likes.py index f0dc562..ffa914d 100755 --- a/tools/migrate_likes.py +++ b/tools/migrate_likes.py @@ -87,78 +87,63 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - 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'] + exit(0) - map_user[row['id']] = user.pk - - 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 + map_user[row['id']] = user + print "loading videos..." sj_video = list(db.get_sj_video_table()) map_video = {} for row in sj_video: - 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) - try: + try: video = SJContent.objects.get( - user=user, - datetime=datetime.fromtimestamp(row['date']), - room=room, - content_type='video') + old_id=row['id'], + content_type='video') except SJContent.DoesNotExist: - print "ERROR" + print "ERROR video '%s' does not exist" % row['id'] + continue - row['__sjcontent_video_pk'] = video.pk - map_video[row['id']] = video.pk + map_video[row['id']] = video # Migrate sj_likes table sj_likes = list(db.get_sj_likes_table()) for row in sj_likes: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - video = None - pk = map_video.get(row['videoid'], 0) - if pk: - video = SJContent.objects.get(pk=pk) - try: - like = SJLike.objects.get( - user=user, - datetime=datetime.fromtimestamp(row['date']), - content=video) - except SJLike.DoesNotExist: - like = SJLike( - user=user, - datetime=datetime.fromtimestamp(row['date']), - content=video) - like.save() - - row['__sjlike_pk'] = like.pk - + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['videoid'] in map_video: + video = map_video[row['videoid']] + else: + print "unknown video in migrate: '%d'" % row['videoid'] + continue + + try: + like = SJLike.objects.get( + user=user, + datetime=datetime.fromtimestamp(row['date']), + content=video) + print "like '%d' exist" % row['date'] + except SJLike.DoesNotExist: + like = SJLike( + user=user, + datetime=datetime.fromtimestamp(row['date']), + content=video) + print "like '%d' created" % row['date'] + like.save() |
