from database import SessionLocal from model import Advisor, Score, Student, Classes, Teacher, Employment advisor_data = [ {"advisor_name": "张建国", "flag": 1, "gender": "男", "phone": "13812345601"}, {"advisor_name": "李美玲", "flag": 1, "gender": "女", "phone": "13912345602"}, {"advisor_name": "王浩宇", "flag": 1, "gender": "男", "phone": "13712345603"}, {"advisor_name": "陈雅婷", "flag": 1, "gender": "女", "phone": "13612345604"}, {"advisor_name": "刘志强", "flag": 1, "gender": "男", "phone": "13512345605"}, {"advisor_name": "赵晓雯", "flag": 1, "gender": "女", "phone": "13412345606"}, {"advisor_name": "黄俊凯", "flag": 1, "gender": "男", "phone": "13312345607"}, {"advisor_name": "周雨欣", "flag": 1, "gender": "女", "phone": "13212345608"}, {"advisor_name": "吴海涛", "flag": 1, "gender": "男", "phone": "13112345609"}, {"advisor_name": "徐思琪", "flag": 1, "gender": "女", "phone": "13012345610"}, ] score_data=[ {"student_id":1,"exam_id":1,"score":100}, {"student_id":1,"exam_id":2,"score":99}, {"student_id":1,"exam_id":3,"score":98}, {"student_id":2,"exam_id":1,"score":90}, {"student_id":2,"exam_id":2,"score":89}, {"student_id":2,"exam_id":3,"score":88}, {"student_id":3,"exam_id":1,"score":80}, {"student_id":3,"exam_id":2,"score":79}, {"student_id":3,"exam_id":3,"score":78}, {"student_id":4,"exam_id":1,"score":50}, {"student_id":4,"exam_id":2,"score":50}, {"student_id":4,"exam_id":3,"score":50} ] student_data = [ { "student_no": 20240001, "student_name": "张小明", "native_places": "广东深圳", "school": "深圳大学", "major": "计算机科学", "enrollment_time": "2024-09-01 00:00:00", "graduation_time": "2028-06-30 00:00:00", "education": "本科", "advisor_id": 1, "age": 18, "gender": "男", "status": "在读", "flag": 1, "class_id": 1 # 归属班级cid=1 计科2401 }, { "student_no": 20240002, "student_name": "李华", "native_places": "广东汕头", "school": "深圳大学", "major": "计算机科学", "enrollment_time": "2024-09-01 00:00:00", "graduation_time": "2028-06-30 00:00:00", "education": "本科", "advisor_id": 1, "age": 18, "gender": "男", "status": "在读", "flag": 1, "class_id": 1 # 归属班级cid=1 计科2401 }, { "student_no": 20240003, "student_name": "小红", "native_places": "广东广州", "school": "深圳大学", "major": "计算机科学", "enrollment_time": "2024-09-01 00:00:00", "graduation_time": "2028-06-30 00:00:00", "education": "本科", "advisor_id": 1, "age": 18, "gender": "女", "status": "在读", "flag": 1, "class_id": 2 # 归属班级cid=2 计科2402 }, { "student_no": 20240004, "student_name": "阿琳", "native_places": "广东佛山", "school": "深圳大学", "major": "计算机科学", "enrollment_time": "2024-09-01 00:00:00", "graduation_time": "2028-06-30 00:00:00", "education": "本科", "advisor_id": 1, "age": 18, "gender": "女", "status": "在读", "flag": 1, "class_id": 3 # 归属班级cid=3 软工2401 }, { "student_no": 20240005, "student_name": "小宇", "native_places": "广东东莞", "school": "深圳大学", "major": "计算机科学", "enrollment_time": "2024-09-01 00:00:00", "graduation_time": "2028-06-30 00:00:00", "education": "本科", "advisor_id": 1, "age": 18, "gender": "男", "status": "在读", "flag": 1, "class_id": 4 # 归属班级cid=4 大数据2401 } ] classes_data = [ {"cid": 1, "class_name": "计科2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "王主任", "teacher": "李老师", "is_del": 0}, {"cid": 2, "class_name": "计科2402", "start_time": "2024-09-01 08:00:00", "head_teacher": "王主任", "teacher": "张老师", "is_del": 1}, {"cid": 3, "class_name": "软工2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "刘主任", "teacher": "陈老师", "is_del": 0}, {"cid": 4, "class_name": "大数据2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "刘主任", "teacher": "黄老师", "is_del": 1}, {"cid": 5, "class_name": "人工智能2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "赵主任", "teacher": "周老师", "is_del": 0} ] teacher_data = [ {"tid":1,"t_name":"李老师","phone":"13800138001","subject":"Python","entry_time":"2020-09-01","is_deleted":1}, {"tid":2,"t_name":"张老师","phone":"13800138002","subject":"高等数学","entry_time":"2021-02-10","is_deleted":1}, {"tid":3,"t_name":"陈老师","phone":"13800138003","subject":"数据库","entry_time":"2022-03-05","is_deleted":1}, {"tid":4,"t_name":"黄老师","phone":"13800138004","subject":"计算机网络","entry_time":"2021-09-01","is_deleted":1}, {"tid":5,"t_name":"赵老师","phone":"13800138005","subject":"操作系统","entry_time":"2023-01-15","is_deleted":1}, ] employment_data = [ {"student_id":1,"employment_start_time":"2026-07-01 09:00:00","offer_time":"2026-06-15 14:30:00","company_name":"腾讯","salary":18000.0}, {"student_id":2,"employment_start_time":"2026-07-10 08:30:00","offer_time":"2026-06-20 10:00:00","company_name":"字节跳动","salary":22000.0}, {"student_id":3,"employment_start_time":"2026-08-01 09:00:00","offer_time":"2026-07-05 16:20:00","company_name":"阿里","salary":20000.0}, {"student_id":4,"employment_start_time":None,"offer_time":"2026-08-10 11:10:00","company_name":"美团","salary":15000.0}, {"student_id":5,"employment_start_time":"2026-08-15 09:30:00","offer_time":None,"company_name":"百度","salary":16500.0}, ] db = SessionLocal() #顾问表初始数据 def seed_advisor(): """插入顾问种子数据(如果表为空)。""" try: if db.query(Advisor).count() == 0: db.bulk_insert_mappings(Advisor, advisor_data) db.commit() print(f"顾问数据插入成功,共 {len(advisor_data)} 条") else: print("顾问表已有数据,跳过插入") finally: db.close() #学生表初始数据 def seed_student(): try: if db.query(Student).count() == 0: db.bulk_insert_mappings(Student, student_data) db.commit() print(f"学生数据插入成功,共 {len(student_data)} 条") else: print("学生表已有数据,跳过插入") finally: db.close() #成绩表初始数据 def seed_score(): try: if db.query(Score).count() == 0: db.bulk_insert_mappings(Score, score_data) db.commit() print(f"成绩数据插入成功,共{len(score_data)}条") else: print("成绩表已有数据,跳过插入") finally: db.close() #班级表初始数据 def seed_classes(): try: if db.query(Classes).count() == 0: db.bulk_insert_mappings(Classes, classes_data) db.commit() print(f"班级数据插入成功,共{len(classes_data)}条") else: print("班级表已有数据,跳过插入") finally: db.close() #老师表初始数据 def seed_teacher(): try: if db.query(Teacher).count() == 0: db.bulk_insert_mappings(Teacher, teacher_data) db.commit() print(f"老师数据插入成功,共{len(teacher_data)}条") else: print("老师表已有数据,跳过插入") finally: db.close() #就业表初始数据 def seed_employment(): try: if db.query(Employment).count() == 0: db.bulk_insert_mappings(Employment, employment_data) db.commit() print(f"就业数据插入成功,共{len(employment_data)}条") else: print("就业表已有数据,跳过插入") finally: db.close() #所有表数据 def seed_all(): seed_classes() # 1 班级 seed_advisor() # 2 顾问 seed_student() # 3 学生(依赖班级+顾问) seed_teacher() # 4 老师 seed_score() # 5 成绩表(依赖学生sid、老师tid) seed_employment() # 中间表teacher_class / teacher_student 只建表,不填充数据,注释掉 # seed_teacher_class(db) # seed_teacher_student(db)