@@ -21,6 +21,11 @@ class SqlServerContainer(DbContainer):
2121 ... engine = sqlalchemy.create_engine(mssql.get_connection_url())
2222 ... with engine.begin() as connection:
2323 ... 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>`_.
2429 """
2530
2631 def __init__ (
@@ -31,6 +36,7 @@ def __init__(
3136 port : int = 1433 ,
3237 dbname : str = "tempdb" ,
3338 dialect : str = "mssql+pymssql" ,
39+ driver : str = "ODBC Driver 17 for SQL Server" ,
3440 ** kwargs ,
3541 ) -> None :
3642 raise_for_deprecated_parameter (kwargs , "user" , "username" )
@@ -43,6 +49,7 @@ def __init__(
4349 self .username = username
4450 self .dbname = dbname
4551 self .dialect = dialect
52+ self .driver = driver
4653
4754 def _configure (self ) -> None :
4855 self .with_env ("SA_PASSWORD" , self .password )
@@ -56,6 +63,8 @@ def _connect(self) -> None:
5663 assert status == 0 , "Cannot run 'SELECT 1': container is not ready"
5764
5865 def get_connection_url (self ) -> str :
59- return super ()._create_connection_url (
66+ base_url = super ()._create_connection_url (
6067 dialect = self .dialect , username = self .username , password = self .password , dbname = self .dbname , port = self .port
6168 )
69+ url = base_url + f"?driver={ '+' .join (self .driver .split (' ' ))} "
70+ return url
0 commit comments