diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a1ee02..2ffd1c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ # Changelog +## 1.1.0 +* Downgrading FreeTDS version if connection fails for older versions of Sybase. ## 1.0.13 * Using correct format sybase time datatype - https://github.com/s7clarke10/tap-sybase/pull/28 diff --git a/setup.py b/setup.py index 43cf3d9..b41db64 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name="tap-sybase", - version="1.0.13", + version="1.1.0", description="Singer.io tap for extracting data from SQL Server - PipelineWise compatible", author="Stitch", url="https://github.com/s7clarke10/tap-sybase", @@ -17,8 +17,7 @@ "attrs>=24.2.0", "pendulum>=1.2.0", "realit-singer-python>=5.0.0", -# pymssql==2.2.8 broken: https://github.com/pymssql/pymssql/issues/833 - "pymssql>=2.1.4,!=2.2.8", + "pymssql>=2.2.9", "backoff>=1.8.0", ], entry_points=""" diff --git a/tap_sybase/connection.py b/tap_sybase/connection.py index f907f95..f662203 100755 --- a/tap_sybase/connection.py +++ b/tap_sybase/connection.py @@ -3,6 +3,7 @@ import backoff import pymssql +from pymssql._mssql import MSSQLDatabaseException import singer import ssl @@ -39,8 +40,16 @@ def __init__(self, config): "tds_version": config.get("tds_version", None), "conn_properties": '', } - conn = pymssql._mssql.connect(**args) - super().__init__(conn, False, True) + + try: + conn = pymssql._mssql.connect(**args) + super().__init__(conn, False, True) + except: + # Set TDS version to lower version supporting older versions of Sybase + # Older versions of Sybase to not support certain keywords like AS + args["tds_version"] = "4.2" + conn = pymssql._mssql.connect(**args) + super().__init__(conn, False, True) def __enter__(self): return self