-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli.py
More file actions
36 lines (32 loc) · 1.39 KB
/
cli.py
File metadata and controls
36 lines (32 loc) · 1.39 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
import click
from app import app
from extensions import db
from models import Resource, Event
from datetime import datetime
@app.cli.command('reset-db')
def reset_db():
"""Drop and recreate database tables."""
with app.app_context():
db.drop_all()
db.create_all()
click.echo('Database reset')
@app.cli.command('seed')
def seed():
"""Seed the database with sample data."""
with app.app_context():
db.create_all()
# Create resources
r1 = Resource(resource_name="Room A", resource_type="room")
r2 = Resource(resource_name="Instructor John", resource_type="instructor")
r3 = Resource(resource_name="Projector", resource_type="equipment")
db.session.add_all([r1, r2, r3])
# Create events
e1 = Event(title="Python Workshop", start_time=datetime(2025,1,10,10,0), end_time=datetime(2025,1,10,12,0), description="Intro to Python")
e2 = Event(title="Data Science Seminar", start_time=datetime(2025,1,10,11,0), end_time=datetime(2025,1,10,13,0), description="Advanced topics")
e3 = Event(title="ML Crash", start_time=datetime(2025,1,11,9,0), end_time=datetime(2025,1,11,12,0), description="ML basics")
db.session.add_all([e1,e2,e3])
db.session.commit()
# Clear cache after seeding
from cache import cache
cache.clear()
click.echo('Seeded database with sample data')