fix(ingest/sql_server): switch to engine inspector instead of connection (#13104)

This commit is contained in:
sleeperdeep 2025-06-27 21:15:33 +03:00 committed by GitHub
parent 54db272c4d
commit f3c8bf9cb4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -936,25 +936,25 @@ class SQLServerSource(SQLAlchemySource):
url = self.config.get_sql_alchemy_url()
logger.debug(f"sql_alchemy_url={url}")
engine = create_engine(url, **self.config.options)
with engine.connect() as conn:
if self.config.database and self.config.database != "":
inspector = inspect(conn)
yield inspector
else:
if self.config.database and self.config.database != "":
inspector = inspect(engine)
yield inspector
else:
with engine.begin() as conn:
databases = conn.execute(
"SELECT name FROM master.sys.databases WHERE name NOT IN \
('master', 'model', 'msdb', 'tempdb', 'Resource', \
'distribution' , 'reportserver', 'reportservertempdb'); "
)
for db in databases:
if self.config.database_pattern.allowed(db["name"]):
url = self.config.get_sql_alchemy_url(current_db=db["name"])
with create_engine(
url, **self.config.options
).connect() as conn:
inspector = inspect(conn)
self.current_database = db["name"]
yield inspector
).fetchall()
for db in databases:
if self.config.database_pattern.allowed(db["name"]):
url = self.config.get_sql_alchemy_url(current_db=db["name"])
engine = create_engine(url, **self.config.options)
inspector = inspect(engine)
self.current_database = db["name"]
yield inspector
def get_identifier(
self, *, schema: str, entity: str, inspector: Inspector, **kwargs: Any