check for empty database before begin

This commit is contained in:
2023-03-23 22:19:03 -04:00
parent 20af991841
commit 99dc76b25a

View File

@@ -6,6 +6,7 @@ from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import (LoginManager, login_user, login_required, logout_user, current_user)
from misc import datetime, date, time, currDay, prevDay, ZoneInfo, currVersion, currCommit
from db import (db, Period, Task, Event, User)
from sqlalchemy import inspect
from forms import (TaskForm, EventForm, PeriodForm, SignupForm, LoginForm, SettingsForm)
from create_events import createEvents
from log import appLogger
@@ -82,19 +83,19 @@ def podStatus():
return blankPage, 500
# Index route
@app.route('/')
@app.route('/', methods=['GET', 'POST'])
def index():
# Check for empty database, go to setup page if not setup
global tablesSetup
required_tables = ['period', 'task', 'event', 'user']
for table in required_tables:
if table in db.metadata.tables:
tablesSetup = True
else:
tablesSetup = False
break
inspector = inspect(db.engine)
tables = inspector.get_table_names()
tablesSetup = all(table in tables for table in required_tables)
if not tablesSetup:
return ""
# Initial setup page, should only appear if database is ready but not set up
db.create_all()
logger.info('DB initialized on first run')
return redirect(url_for('createAccount'))
# Otherwise, redirect to /events
else:
return redirect('/events')
@@ -138,7 +139,7 @@ def createAccount():
return redirect(url_for('login'))
return render_template('createAccount.html', form=form)
else:
return 'Account creation is currently disabled'
return 'Account creation is currently disabled. <br> Set env var SIGNUP_ENABLED=YES to enable account creation'
@app.route('/logout')
@login_required
def logout():