import click from fansifter_common.constants import PROD_ENVIRONMENT, QA_ENVIRONMENT from dmp.adapters.db import DefaultDB, Model, ReportingDB, ReportingModel from dmp.config import settings from dmp.container import container cli = click.Group( short_help="Perform Database commands.", no_args_is_help=True, ) @cli.command("create") @click.argument("dbname", default="default") def create_db(dbname: str) -> None: """Create database.""" db = container.resolve(DefaultDB) reporting_db = container.resolve(ReportingDB) if settings.environment in [QA_ENVIRONMENT, PROD_ENVIRONMENT]: raise click.ClickException("Cannot create database in QA or PROD environment.") if dbname == "reporting": ReportingModel.metadata.create_all(bind=reporting_db.engine) else: Model.metadata.create_all(bind=db.engine)