from flask.cli import with_appcontext from click import command from ..dependencies import db from ..factory import ProjectSupervisorFactory, GroupFactory, StudentFactory @command('init_db') @with_appcontext def init_db() -> None: """Fill database with some data""" db.drop_all() db.create_all() num_of_supervisors = 5 projects_supervisors = [ProjectSupervisorFactory() for _ in range(num_of_supervisors)] db.session.add_all(projects_supervisors) db.session.commit() groups = [GroupFactory(project_supervisor=projects_supervisors[i]) for i in range(num_of_supervisors)] db.session.add_all(groups) db.session.commit() num_of_students = num_of_supervisors * 3 students = [StudentFactory(group=groups[i % num_of_supervisors]) for i in range(num_of_students)] max_count = 10 max_length = len(students) start_count = 0 while True: if start_count > max_length: break db.session.add_all(students[start_count:max_count]) db.session.commit() start_count += max_count