From 478cb120b7cf7f227fa07b0662c49766b9b84ed4 Mon Sep 17 00:00:00 2001 From: Greenstick Date: Tue, 13 Feb 2024 12:36:12 -0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20minor=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/app.py b/app.py index 6dca4472..db7a6ce9 100644 --- a/app.py +++ b/app.py @@ -105,20 +105,23 @@ def create_app(config_module=None, loglevel="INFO"): # CORS(app, resources={r"/*": {"origins": "*", "send_wildcard": True}}) - @app.cli.command("create-schema") - def create_schema(): - """Create the database schema.""" - engine = model.db.session.get_bind() - metadata = MetaData() - metadata.reflect(bind=engine) - table_names = [table.name for table in metadata.tables.values()] - if len(table_names) == 0: - with engine.begin(): - model.db.create_all() + # @app.cli.command("create-schema") + # def create_schema(): + # """Create the database schema.""" + # engine = model.db.session.get_bind() + # metadata = MetaData() + # metadata.reflect(bind=engine) + # table_names = [table.name for table in metadata.tables.values()] + # if len(table_names) == 0: + # with engine.begin(): + # model.db.create_all() @app.cli.command("destroy-schema") def destroy_schema(): """Create the database schema.""" + # If DB is Azure, Skip + if config.FAIRHUB_DATABASE_URL.find("azure") > -1: + return engine = model.db.session.get_bind() with engine.begin(): model.db.drop_all() @@ -126,6 +129,9 @@ def destroy_schema(): @app.cli.command("cycle-schema") def cycle_schema(): """Destroy then re-create the database schema.""" + # If DB is Azure, Skip + if config.FAIRHUB_DATABASE_URL.find("azure") > -1: + return engine = model.db.session.get_bind() with engine.begin(): model.db.drop_all() @@ -240,6 +246,17 @@ def on_after_request(resp): def validation_exception_handler(error): return error.args[0], 422 + with app.app_context(): + engine = model.db.session.get_bind() + metadata = MetaData() + metadata.reflect(bind=engine) + table_names = [table.name for table in metadata.tables.values()] + + # The alembic table is created by default, so we need to check for more than 1 table + if len(table_names) <= 1: + with engine.begin(): + model.db.create_all() + return app