-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit_db.py
More file actions
34 lines (29 loc) · 1.11 KB
/
Copy pathinit_db.py
File metadata and controls
34 lines (29 loc) · 1.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
from app.services.db import engine, Base
from app.models.course import Course
from app.models.quiz import Quiz
from app.models.question import Question
from app.models.answer import Answer
from app.models.note import Note
from app.models.video import Video
from sqlalchemy.orm import Session
from sqlalchemy.exc import SQLAlchemyError
def init_db():
try:
Base.metadata.create_all(bind=engine)
print("Database tables created successfully.")
with Session(engine) as session:
if session.query(Course).count() == 0:
course = Course(title="Introduction to Python", description="Learn Python basics")
session.add(course)
session.commit()
print("Initial data (course) seeded successfully.")
else:
print("Database already contains data, skipping seeding.")
except SQLAlchemyError as e:
print(f"Database initialization failed: {str(e)}")
raise
except Exception as e:
print(f"Unexpected error during initialization: {str(e)}")
raise
if __name__ == "__main__":
init_db()