-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.py
45 lines (34 loc) · 1.2 KB
/
run.py
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
import logging
import os
from datetime import datetime
import environ
from chezchat import app, db, inspector, manager, socketio
from chezchat.models import Users
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
# Initialise environment variables from the .env file
env = environ.Env()
overrides = {key: os.environ.pop(key, value) for key, value in os.environ.items()}
environ.Env.read_env(env_file=".env", **overrides)
DEBUG = os.getenv("DEBUG") == "True"
def update_db_or_create_db():
try:
users = Users.query.all()
for user in users:
if user.online_at > user.last_seen:
user.last_seen = datetime.utcnow()
user.last_seen_update_on_server_restart = True
db.session.commit()
except Exception as e:
if not inspector.get_table_names():
logger.warning("Tables don't exist yet. creating them now")
db.create_all()
logger.info("Successfully created the database and related tables")
else:
raise e
@manager.command
def runserver():
update_db_or_create_db()
socketio.run(app, host="0.0.0.0", debug=DEBUG)
if __name__ == "__main__":
manager.run()