You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/09/03 22:54:00 UTC

[jira] [Commented] (AIRFLOW-251) Add optional parameter SQL_ALCHEMY_SCHEMA to control schema for metadata repository

    [ https://issues.apache.org/jira/browse/AIRFLOW-251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16602477#comment-16602477 ] 

ASF GitHub Bot commented on AIRFLOW-251:
----------------------------------------

kaxil closed pull request #1600: [AIRFLOW-251] Add option SQL_ALCHEMY_SCHEMA parameter to use SQL Server for metadata.
URL: https://github.com/apache/incubator-airflow/pull/1600
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/airflow/configuration.py b/airflow/configuration.py
index e03b713046..03f15d721d 100644
--- a/airflow/configuration.py
+++ b/airflow/configuration.py
@@ -106,6 +106,7 @@ def run_command(command):
         'dags_are_paused_at_creation': True,
         'sql_alchemy_pool_size': 5,
         'sql_alchemy_pool_recycle': 3600,
+        'sql_alchemy_schema': None,
         'dagbag_import_timeout': 30,
         'non_pooled_task_slot_count': 128,
     },
@@ -210,6 +211,10 @@ def run_command(command):
 # their website
 sql_alchemy_conn = sqlite:///{AIRFLOW_HOME}/airflow.db
 
+# The schema to use for the metadata database
+# SqlAlchemy supports databases with the concept of multiple schemas.
+sql_alchemy_schema =
+
 # The SqlAlchemy pool size is the maximum number of database connections
 # in the pool.
 sql_alchemy_pool_size = 5
diff --git a/airflow/models.py b/airflow/models.py
index 1b613188ca..cf8adfa04f 100644
--- a/airflow/models.py
+++ b/airflow/models.py
@@ -47,7 +47,7 @@
 from sqlalchemy import (
     Column, Integer, String, DateTime, Text, Boolean, ForeignKey, PickleType,
     Index, Float)
-from sqlalchemy import case, func, or_, and_
+from sqlalchemy import case, func, or_, and_, MetaData
 from sqlalchemy.ext.declarative import declarative_base, declared_attr
 from sqlalchemy.dialects.mysql import LONGTEXT
 from sqlalchemy.orm import relationship, synonym
@@ -71,7 +71,11 @@
 from airflow.utils.timeout import timeout
 from airflow.utils.trigger_rule import TriggerRule
 
-Base = declarative_base()
+SQL_ALCHEMY_SCHEMA = configuration.get('core', 'SQL_ALCHEMY_SCHEMA')
+if SQL_ALCHEMY_SCHEMA is None or SQL_ALCHEMY_SCHEMA.isspace():
+    Base = declarative_base()
+else:
+    Base = declarative_base(metadata=MetaData(schema=SQL_ALCHEMY_SCHEMA))
 ID_LEN = 250
 SQL_ALCHEMY_CONN = configuration.get('core', 'SQL_ALCHEMY_CONN')
 DAGS_FOLDER = os.path.expanduser(configuration.get('core', 'DAGS_FOLDER'))


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Add optional parameter SQL_ALCHEMY_SCHEMA to control schema for metadata repository
> -----------------------------------------------------------------------------------
>
>                 Key: AIRFLOW-251
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-251
>             Project: Apache Airflow
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 2.0.0
>            Reporter: Ed Parcell
>            Priority: Minor
>
> Using SQL Server as a database for metadata, it is preferable to group all Airflow tables into a separate schema, rather than using dbo. I propose adding an optional parameter SQL_ALCHEMY_SCHEMA to control this.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)