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