-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseed.py
More file actions
72 lines (59 loc) · 2.11 KB
/
seed.py
File metadata and controls
72 lines (59 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from config.environment import db_URI
from data.role_data import create_classes, create_enrollments
from data.user_data import user_list
from data.announcement_data import create_announcements
from data.post_data import create_posts
from models.base import Base
from data.graduate_project_data import create_graduate_projects
engine = create_engine(db_URI)
SessionLocal = sessionmaker(bind=engine)
try:
print("Recreating database...")
Base.metadata.drop_all(bind=engine)
Base.metadata.create_all(bind=engine)
print("Seeding the database...")
db = SessionLocal()
# Seed users
print("✓ Seeding users...")
db.add_all(user_list)
db.commit()
# Seed graduate projects
print("✓ Seeding graduate projects...")
graduate_projects = create_graduate_projects(user_list)
db.add_all(graduate_projects)
db.commit()
# Seed classes
print("✓ Seeding classes...")
classes_list = create_classes(user_list)
db.add_all(classes_list)
db.commit()
# Seed enrollments
print("✓ Seeding enrollments...")
enrollments_list = create_enrollments(user_list, classes_list)
db.add_all(enrollments_list)
db.commit()
# Seed announcements
print("✓ Seeding announcements...")
announcements_list = create_announcements(classes_list)
db.add_all(announcements_list)
db.commit()
# Seed posts
print("✓ Seeding posts...")
posts_list = create_posts(user_list)
db.add_all(posts_list)
db.commit()
db.close()
print("\n🎉 Database seeding complete!")
print(f" - {len(user_list)} users created")
print(f" - {len(classes_list)} classes created")
print(f" - {len(enrollments_list)} enrollments created")
print(f" - {len(announcements_list)} announcements created")
print(f" - {len(graduate_projects)} graduate projects created")
print(f" - {len(posts_list)} posts created")
print("\n👋 Happy testing!")
except Exception as e:
print("❌ An error occurred during seeding:", e)
import traceback
traceback.print_exc()