diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index 68743494..61d40a5b 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -1,5 +1,6 @@ import logging import os +import shutil from importlib import import_module, reload from typing import Any @@ -128,4 +129,17 @@ def create_app() -> Flask: else: return render_template('index.html') + @app.cli.command('drop-db') + def drop_db() -> None: + """Empty database and delete uploaded files for dev environments.""" + if app_settings == 'fittrackee.config.ProductionConfig': + print('This is a production server, aborting!') + return + db.engine.execute("DROP TABLE IF EXISTS alembic_version;") + db.drop_all() + db.session.commit() + print('Database dropped.') + shutil.rmtree(app.config['UPLOAD_FOLDER'], ignore_errors=True) + print('Uploaded files deleted.') + return app diff --git a/fittrackee/__main__.py b/fittrackee/__main__.py index 0bc38ed2..2905f0ea 100644 --- a/fittrackee/__main__.py +++ b/fittrackee/__main__.py @@ -1,7 +1,6 @@ # source for StandaloneApplication class: # http://docs.gunicorn.org/en/stable/custom.html import os -import shutil from typing import Dict, Optional import click @@ -9,7 +8,7 @@ import gunicorn.app.base from flask import Flask from flask_migrate import upgrade -from fittrackee import create_app, db +from fittrackee import create_app from fittrackee.users.exceptions import UserNotFoundException from fittrackee.users.utils import set_admin_rights @@ -46,17 +45,6 @@ def upgrade_db() -> None: upgrade(directory=BASEDIR + '/migrations') -@app.cli.command('drop-db') -def drop_db() -> None: - """Empty database and delete uploaded files for dev environments.""" - db.engine.execute("DROP TABLE IF EXISTS alembic_version;") - db.drop_all() - db.session.commit() - print('Database dropped.') - shutil.rmtree(app.config['UPLOAD_FOLDER'], ignore_errors=True) - print('Uploaded files deleted.') - - @app.cli.command('set-admin') @click.argument('username') def set_admin(username: str) -> None: