You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2021/08/02 10:08:37 UTC

[GitHub] [airflow] cansjt commented on issue #17374: The new weberser does not seem to care about AIRFLOW__CORE__SQL_ALCHEMY_SCHEMA

cansjt commented on issue #17374:
URL: https://github.com/apache/airflow/issues/17374#issuecomment-890900713


   I think if you use a framework to build an application, that application should control the behavior of the framework, not let it do as it pleases.
   
   I am no specialist of Flask AppBuilder but my understanding is that you use it with regular SQLAlchemy declarative ORM models. So I am guessing you should be able to create those models with the appropriate `MetaData` object (w. custom base model class ?), specifying the same schema as other Airflow models or override the schema name on a per model basis. Though both method mean you need the configuration available while loading (importing) the models or make sure no model is ever imported before the configuration has been parsed...
   
   You might also want ot have a look at this FAB issue: https://github.com/dpgaspar/Flask-AppBuilder/issues/1585 (fairly recent March of this year)
   The last solution seems "cleaner" to me:
   ```python
   db = SQLAlchemy(app)
   db_eng = db.engine.execution_options(schema_translate_map= {None: configuration.get('core', 'SQL_ALCHEMY_SCHEMA')})
   Session = sessionmaker(bind=db_eng)
   db_sess = scoped_session(Session)
   appbuilder = AppBuilder(app, db_sess)
   ```
   Not sure it fits the current implementation though.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org