diff options
Diffstat (limited to 'server/piztor/import.py')
-rw-r--r-- | server/piztor/import.py | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/server/piztor/import.py b/server/piztor/import.py index 4896325..f5228e7 100644 --- a/server/piztor/import.py +++ b/server/piztor/import.py @@ -2,32 +2,49 @@ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from model import * -path = "root:helloworld@localhost/piztor" +path = "root:helloworld@localhost/piztor2" class UserData: - def __init__(self, username, password, comp_id, sec_no, sex): + def __init__(self, username, nickname, password, comp_no, sec_no, sex, sub): self.username = username + self.nickname = nickname self.password = password - self.comp_id = int(comp_id) + self.comp_no = int(comp_no) self.sec_no = int(sec_no) - self.sex = sex + self.sex = int(sex) + self.sub = sub def create_database(): engine = create_engine('mysql://' + path, echo = True) Base.metadata.drop_all(engine) Base.metadata.create_all(engine) +def find_or_create_group(comp_no, sec_no, session): + gid = UserModel.to_gid(comp_no, sec_no) + q = session.query(GroupInfo).filter(GroupInfo.id == gid) + entry = None + entry = q.first() + if not entry: + entry = GroupInfo(gid = gid) + return entry + + def import_user_data(data): engine = create_engine('mysql://' + path, echo = True) Session = sessionmaker(bind = engine) session = Session() + for user in data: um = UserModel(username = user.username, - comp_id = user.comp_id, - sec_no = user.sec_no, - sec_id = user.comp_id * 256 + user.sec_no, - sex = user.sex) - print um.sec_id + nickname = user.nickname, + sex = user.sex, + comp_no = user.comp_no, + sec_no = user.sec_no) + + for cn, sn in user.sub: + print cn, sn + g = find_or_create_group(int(cn), int(sn), session) + um.sub.append(g) um.auth = UserAuth(user.password) um.location = LocationInfo(lat = 0, lng = 0) session.add(um) @@ -45,11 +62,19 @@ if __name__ == '__main__': while True: line = f.readline().split() if len(line) == 0: break + line2 = f.readline().split() + idx = 0 + sub = list() + while idx < len(line2): + sub.append((line2[idx], line2[idx + 1])) + idx += 2 data.append(UserData(username = line[0], - password = line[1], - comp_id = line[2], - sec_no = line[3], - sex = line[4])) + nickname = line[1], + password = line[2], + comp_no = line[3], + sec_no = line[4], + sex = line[5], sub = sub)) + create_database() import_user_data(data) |