# Do the conversion if f in identical_fields: new_team[f] = val continue if f in name_changes: new_f = name_changes[f] new_team[new_f] = val continue if f == 'name': new_team['name'] = unicode(val) if f == 'league_id': league_doc_id = getMongoId(leagues_coll, val, league_cache) if league_doc_id != None: new_team['league_id'] = league_doc_id if f == 'captain' or f == 'cocaptain': insert_pos = {'captain':0, 'cocaptain':1} captain_id = getMongoId(users_coll, val, user_cache, 'mysql_ids') if captain_id != None: new_team['captains'].insert(insert_pos[f], captain_id) if f in ['rank', 'wins', 'losses', 'ptdiff']: if f == 'ptdiff': f = 'point_differential'
if val == None or val == '': del mysql_record[f] continue # Do the conversion if f in identical_fields: new_league[f] = val continue if f in name_changes: new_f = name_changes[f] new_league[new_f] = val continue if f == 'commish': commish_doc_id = getMongoId(user_coll, int(val), user_cache, 'mysql_ids') if commish_doc_id != None: new_league['commissioner_ids'] = [commish_doc_id] if f == 'max_men': new_league['player_limit'] = {'male': int(val)} if f == 'juniors': division_list = ['adult', 'juniors'] new_league['age_division'] = division_list[val] print "Saving " + mysql_record['name'] new_id = league_coll.save(new_league) mysql_record = old_cur.fetchone()
# Cache document IDs based on mysql id to speed up the import, no need to query for these multiple times user_cache = {} league_cache = {} user_metadata_cache = {} user_metadata_fields = ['firstname', 'middlename', 'lastname', 'height', 'weight', 'birthdate', 'gender'] while mysql_record != None: new_reg = {'mysql_id': int(mysql_record['id'])} user_doc = None # Link to a user document if 'c_id' in mysql_record: val = int(mysql_record['c_id']) user_doc_id = getMongoId(users_coll, val, user_cache, 'mysql_ids') if user_doc_id != None: new_reg['user_id'] = user_doc_id if str(user_doc_id) in user_metadata_cache: user_meta = user_metadata_cache[str(user_doc_id)] else: user_meta = users_coll.find_one({'_id' : user_doc_id}, user_metadata_fields) if user_meta: del user_meta['_id'] user_metadata_cache[str(user_doc_id)] = user_meta if user_meta: new_reg['user_data'] = user_meta
if f in identical_fields: new_game[f] = val continue if f in name_changes: new_f = name_changes[f] new_game[new_f] = val continue if f == 'time': tz_shift = datetime.timedelta(hours=4) # Times are stored in mysql incorrectly new_val = val + tz_shift new_game['game_time'] = new_val if f == 'league_id': league_doc_id = getMongoId(leagues_coll, val, league_cache) if league_doc_id != None: new_game['league_id'] = league_doc_id if f == 'field_id': field_doc_id = getMongoId(fields_coll, val, field_cache) if field_doc_id != None: new_game['fieldsite_id'] = field_doc_id if f == 'field_num': new_game['field'] = str(val) # Pull in score data if new_game['mysql_id'] != None: