@@ -21,6 +21,11 @@ class SqlServerContainer(DbContainer):
21
21
... engine = sqlalchemy.create_engine(mssql.get_connection_url())
22
22
... with engine.begin() as connection:
23
23
... result = connection.execute(sqlalchemy.text("select @@VERSION"))
24
+
25
+ Notes
26
+ -----
27
+ Requires `ODBC Driver 17 for SQL Server <https://docs.microsoft.com/en-us/sql/connect/odbc/
28
+ linux-mac/installing-the-microsoft-odbc-driver-for-sql-server>`_.
24
29
"""
25
30
26
31
def __init__ (
@@ -31,6 +36,7 @@ def __init__(
31
36
port : int = 1433 ,
32
37
dbname : str = "tempdb" ,
33
38
dialect : str = "mssql+pymssql" ,
39
+ driver : str = "ODBC Driver 17 for SQL Server" ,
34
40
** kwargs ,
35
41
) -> None :
36
42
raise_for_deprecated_parameter (kwargs , "user" , "username" )
@@ -43,6 +49,7 @@ def __init__(
43
49
self .username = username
44
50
self .dbname = dbname
45
51
self .dialect = dialect
52
+ self .driver = driver
46
53
47
54
def _configure (self ) -> None :
48
55
self .with_env ("SA_PASSWORD" , self .password )
@@ -56,6 +63,8 @@ def _connect(self) -> None:
56
63
assert status == 0 , "Cannot run 'SELECT 1': container is not ready"
57
64
58
65
def get_connection_url (self ) -> str :
59
- return super ()._create_connection_url (
66
+ base_url = super ()._create_connection_url (
60
67
dialect = self .dialect , username = self .username , password = self .password , dbname = self .dbname , port = self .port
61
68
)
69
+ url = base_url + f"?driver={ '+' .join (self .driver .split (' ' ))} "
70
+ return url
0 commit comments