You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by je...@apache.org on 2022/09/26 22:29:27 UTC

[airflow] 01/03: Resolve deprecation warning re Table.exists() (#26616)

This is an automated email from the ASF dual-hosted git repository.

jedcunningham pushed a commit to branch v2-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit a96fad8de84d14ea12de6243e0f5c8f29a585549
Author: Daniel Standish <15...@users.noreply.github.com>
AuthorDate: Fri Sep 23 13:30:38 2022 -0700

    Resolve deprecation warning re Table.exists() (#26616)
    
    The deprecation warning tells us we need to change Table.exists() to Inspector.has_table().  It turns out we're already using the right method, but we weren't passing it the right object.  It wants a table name but we were giving it a table.
    
    (cherry picked from commit 2388bd72ba4b0012b0540a43aa9f0001840ff285)
---
 airflow/compat/sqlalchemy.py                       | 36 ----------------------
 .../versions/0001_1_5_0_current_schema.py          |  3 +-
 .../versions/0002_1_5_0_create_is_encrypted.py     |  3 +-
 ..._1_8_2_add_max_tries_column_to_task_instance.py |  3 +-
 ...1_10_0_add_kubernetes_resource_checkpointing.py |  3 +-
 .../versions/0057_1_10_13_add_fab_tables.py        |  3 +-
 ...1_10_13_increase_length_of_fab_ab_view_menu_.py |  2 +-
 .../versions/0059_2_0_0_drop_user_and_chart.py     |  3 +-
 .../0060_2_0_0_remove_id_column_from_xcom.py       |  4 +--
 .../versions/0062_2_0_0_add_dagrun_run_type.py     |  3 +-
 .../0065_2_0_0_update_schema_for_smart_sensor.py   |  3 +-
 .../0068_2_0_0_drop_kuberesourceversion_and_.py    |  3 +-
 airflow/utils/db.py                                |  3 +-
 airflow/www/fab_security/sqla/manager.py           |  5 ++-
 docs/apache-airflow/img/airflow_erd.sha256         |  2 +-
 15 files changed, 15 insertions(+), 64 deletions(-)

diff --git a/airflow/compat/sqlalchemy.py b/airflow/compat/sqlalchemy.py
deleted file mode 100644
index b222af463f..0000000000
--- a/airflow/compat/sqlalchemy.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-from __future__ import annotations
-
-from sqlalchemy import Table
-from sqlalchemy.engine import Connection
-
-try:
-    from sqlalchemy import inspect
-except AttributeError:
-    from sqlalchemy.engine.reflection import Inspector
-
-    inspect = Inspector.from_engine
-
-__all__ = ["has_table", "inspect"]
-
-
-def has_table(conn: Connection, table: Table):
-    try:
-        return inspect(conn).has_table(table)
-    except AttributeError:
-        return table.exists(conn)
diff --git a/airflow/migrations/versions/0001_1_5_0_current_schema.py b/airflow/migrations/versions/0001_1_5_0_current_schema.py
index 73d6b8ed1d..d294552968 100644
--- a/airflow/migrations/versions/0001_1_5_0_current_schema.py
+++ b/airflow/migrations/versions/0001_1_5_0_current_schema.py
@@ -26,9 +26,8 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-from sqlalchemy import func
+from sqlalchemy import func, inspect
 
-from airflow.compat.sqlalchemy import inspect
 from airflow.migrations.db_types import StringID
 
 # revision identifiers, used by Alembic.
diff --git a/airflow/migrations/versions/0002_1_5_0_create_is_encrypted.py b/airflow/migrations/versions/0002_1_5_0_create_is_encrypted.py
index 53d39039ab..4d74f870b5 100644
--- a/airflow/migrations/versions/0002_1_5_0_create_is_encrypted.py
+++ b/airflow/migrations/versions/0002_1_5_0_create_is_encrypted.py
@@ -26,8 +26,7 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-
-from airflow.compat.sqlalchemy import inspect
+from sqlalchemy import inspect
 
 # revision identifiers, used by Alembic.
 revision = '1507a7289a2f'
diff --git a/airflow/migrations/versions/0023_1_8_2_add_max_tries_column_to_task_instance.py b/airflow/migrations/versions/0023_1_8_2_add_max_tries_column_to_task_instance.py
index 3e9cee0a3b..8e97fd78e9 100644
--- a/airflow/migrations/versions/0023_1_8_2_add_max_tries_column_to_task_instance.py
+++ b/airflow/migrations/versions/0023_1_8_2_add_max_tries_column_to_task_instance.py
@@ -25,11 +25,10 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-from sqlalchemy import Column, Integer, String
+from sqlalchemy import Column, Integer, String, inspect
 from sqlalchemy.ext.declarative import declarative_base
 
 from airflow import settings
-from airflow.compat.sqlalchemy import inspect
 from airflow.models import DagBag
 
 # revision identifiers, used by Alembic.
diff --git a/airflow/migrations/versions/0028_1_10_0_add_kubernetes_resource_checkpointing.py b/airflow/migrations/versions/0028_1_10_0_add_kubernetes_resource_checkpointing.py
index 0a345aa91b..91f40975de 100644
--- a/airflow/migrations/versions/0028_1_10_0_add_kubernetes_resource_checkpointing.py
+++ b/airflow/migrations/versions/0028_1_10_0_add_kubernetes_resource_checkpointing.py
@@ -25,8 +25,7 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-
-from airflow.compat.sqlalchemy import inspect
+from sqlalchemy import inspect
 
 # revision identifiers, used by Alembic.
 revision = '33ae817a1ff4'
diff --git a/airflow/migrations/versions/0057_1_10_13_add_fab_tables.py b/airflow/migrations/versions/0057_1_10_13_add_fab_tables.py
index 6cb76ea70a..b97d51ee54 100644
--- a/airflow/migrations/versions/0057_1_10_13_add_fab_tables.py
+++ b/airflow/migrations/versions/0057_1_10_13_add_fab_tables.py
@@ -26,8 +26,7 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-
-from airflow.compat.sqlalchemy import inspect
+from sqlalchemy import inspect
 
 # revision identifiers, used by Alembic.
 revision = '92c57b58940d'
diff --git a/airflow/migrations/versions/0058_1_10_13_increase_length_of_fab_ab_view_menu_.py b/airflow/migrations/versions/0058_1_10_13_increase_length_of_fab_ab_view_menu_.py
index 75f7c8835a..7f960d7ce8 100644
--- a/airflow/migrations/versions/0058_1_10_13_increase_length_of_fab_ab_view_menu_.py
+++ b/airflow/migrations/versions/0058_1_10_13_increase_length_of_fab_ab_view_menu_.py
@@ -26,8 +26,8 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
+from sqlalchemy import inspect
 
-from airflow.compat.sqlalchemy import inspect
 from airflow.migrations.db_types import StringID
 
 # revision identifiers, used by Alembic.
diff --git a/airflow/migrations/versions/0059_2_0_0_drop_user_and_chart.py b/airflow/migrations/versions/0059_2_0_0_drop_user_and_chart.py
index 892078c845..78b3ca28f0 100644
--- a/airflow/migrations/versions/0059_2_0_0_drop_user_and_chart.py
+++ b/airflow/migrations/versions/0059_2_0_0_drop_user_and_chart.py
@@ -25,10 +25,9 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
+from sqlalchemy import inspect
 from sqlalchemy.dialects import mysql
 
-from airflow.compat.sqlalchemy import inspect
-
 # revision identifiers, used by Alembic.
 revision = 'cf5dc11e79ad'
 down_revision = '03afc6b6f902'
diff --git a/airflow/migrations/versions/0060_2_0_0_remove_id_column_from_xcom.py b/airflow/migrations/versions/0060_2_0_0_remove_id_column_from_xcom.py
index 133f48ba10..956039df12 100644
--- a/airflow/migrations/versions/0060_2_0_0_remove_id_column_from_xcom.py
+++ b/airflow/migrations/versions/0060_2_0_0_remove_id_column_from_xcom.py
@@ -27,9 +27,7 @@ from __future__ import annotations
 from collections import defaultdict
 
 from alembic import op
-from sqlalchemy import Column, Integer
-
-from airflow.compat.sqlalchemy import inspect
+from sqlalchemy import Column, Integer, inspect
 
 # revision identifiers, used by Alembic.
 revision = 'bbf4a7ad0465'
diff --git a/airflow/migrations/versions/0062_2_0_0_add_dagrun_run_type.py b/airflow/migrations/versions/0062_2_0_0_add_dagrun_run_type.py
index b3c1f8af19..5125a1fdde 100644
--- a/airflow/migrations/versions/0062_2_0_0_add_dagrun_run_type.py
+++ b/airflow/migrations/versions/0062_2_0_0_add_dagrun_run_type.py
@@ -27,10 +27,9 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-from sqlalchemy import Column, Integer, String
+from sqlalchemy import Column, Integer, String, inspect
 from sqlalchemy.ext.declarative import declarative_base
 
-from airflow.compat.sqlalchemy import inspect
 from airflow.utils.types import DagRunType
 
 # revision identifiers, used by Alembic.
diff --git a/airflow/migrations/versions/0065_2_0_0_update_schema_for_smart_sensor.py b/airflow/migrations/versions/0065_2_0_0_update_schema_for_smart_sensor.py
index 1b88f4cdae..4425c2d5e7 100644
--- a/airflow/migrations/versions/0065_2_0_0_update_schema_for_smart_sensor.py
+++ b/airflow/migrations/versions/0065_2_0_0_update_schema_for_smart_sensor.py
@@ -26,9 +26,8 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-from sqlalchemy import func
+from sqlalchemy import func, inspect
 
-from airflow.compat.sqlalchemy import inspect
 from airflow.migrations.db_types import TIMESTAMP, StringID
 
 # revision identifiers, used by Alembic.
diff --git a/airflow/migrations/versions/0068_2_0_0_drop_kuberesourceversion_and_.py b/airflow/migrations/versions/0068_2_0_0_drop_kuberesourceversion_and_.py
index 0239b467c5..3eff077758 100644
--- a/airflow/migrations/versions/0068_2_0_0_drop_kuberesourceversion_and_.py
+++ b/airflow/migrations/versions/0068_2_0_0_drop_kuberesourceversion_and_.py
@@ -26,8 +26,7 @@ from __future__ import annotations
 
 import sqlalchemy as sa
 from alembic import op
-
-from airflow.compat.sqlalchemy import inspect
+from sqlalchemy import inspect
 
 # revision identifiers, used by Alembic.
 revision = 'bef4f3d11e8b'
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index 75e3b260db..3acbaf6f22 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -33,7 +33,6 @@ from sqlalchemy.orm.session import Session
 
 import airflow
 from airflow import settings
-from airflow.compat.sqlalchemy import has_table
 from airflow.configuration import conf
 from airflow.exceptions import AirflowException
 from airflow.models import import_all_models
@@ -1643,7 +1642,7 @@ def drop_airflow_models(connection):
 
     migration_ctx = MigrationContext.configure(connection)
     version = migration_ctx._version
-    if has_table(connection, version):
+    if inspect(connection).has_table(version.name):
         version.drop(connection)
 
 
diff --git a/airflow/www/fab_security/sqla/manager.py b/airflow/www/fab_security/sqla/manager.py
index 02301028de..bbc44296fa 100644
--- a/airflow/www/fab_security/sqla/manager.py
+++ b/airflow/www/fab_security/sqla/manager.py
@@ -22,11 +22,10 @@ import uuid
 from flask_appbuilder import const as c
 from flask_appbuilder.models.sqla import Base
 from flask_appbuilder.models.sqla.interface import SQLAInterface
-from sqlalchemy import and_, func, literal
+from sqlalchemy import and_, func, inspect, literal
 from sqlalchemy.orm.exc import MultipleResultsFound
 from werkzeug.security import generate_password_hash
 
-from airflow.compat import sqlalchemy as sqla_compat
 from airflow.www.fab_security.manager import BaseSecurityManager
 from airflow.www.fab_security.sqla.models import (
     Action,
@@ -99,7 +98,7 @@ class SecurityManager(BaseSecurityManager):
     def create_db(self):
         try:
             engine = self.get_session.get_bind(mapper=None, clause=None)
-            inspector = sqla_compat.inspect(engine)
+            inspector = inspect(engine)
             if "ab_user" not in inspector.get_table_names():
                 log.info(c.LOGMSG_INF_SEC_NO_DB)
                 Base.metadata.create_all(engine)
diff --git a/docs/apache-airflow/img/airflow_erd.sha256 b/docs/apache-airflow/img/airflow_erd.sha256
index c4e1cb00b1..d8d6035893 100644
--- a/docs/apache-airflow/img/airflow_erd.sha256
+++ b/docs/apache-airflow/img/airflow_erd.sha256
@@ -1 +1 @@
-866390aad1d155c75b4283c4d50ff56fb1f210f21dcd0e0955984bd08f26ac5c
\ No newline at end of file
+543fe0db520047b59d9d036b17d54b07f1031a2b6ef1f46dcd2ae970f14ab0e6
\ No newline at end of file