mirror of
https://github.com/jazzband/dj-database-url.git
synced 2026-03-16 22:20:24 +00:00
* Fix #149 Add support to official Microsoft mssql-django adapter * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: Matt Seymour <mattaseymour@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
836740dd81
commit
931a4e4198
3 changed files with 20 additions and 1 deletions
|
|
@ -94,6 +94,8 @@ URL schema
|
|||
+-------------+-----------------------------------------------+--------------------------------------------------+
|
||||
| MSSQL | ``sql_server.pyodbc`` | ``mssql://USER:PASSWORD@HOST:PORT/NAME`` |
|
||||
+-------------+-----------------------------------------------+--------------------------------------------------+
|
||||
| MSSQL [5]_ | ``mssql`` | ``mssqlms://USER:PASSWORD@HOST:PORT/NAME`` |
|
||||
+-------------+-----------------------------------------------+--------------------------------------------------+
|
||||
| MySQL | ``django.db.backends.mysql`` | ``mysql://USER:PASSWORD@HOST:PORT/NAME`` |
|
||||
+-------------+-----------------------------------------------+--------------------------------------------------+
|
||||
| MySQL (GIS) | ``django.contrib.gis.db.backends.mysql`` | ``mysqlgis://USER:PASSWORD@HOST:PORT/NAME`` |
|
||||
|
|
@ -124,6 +126,7 @@ URL schema
|
|||
from using other Oracle tools (like SQLPlus) i.e. user and password are separated
|
||||
by ``:`` not by ``/``. Also you can omit ``HOST`` and ``PORT``
|
||||
and provide a full DSN string or TNS name in ``NAME`` part.
|
||||
.. [5] Microsoft official `mssql-django <https://github.com/microsoft/mssql-django>`_ adapter.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ urlparse.uses_netloc.append("mysql2")
|
|||
urlparse.uses_netloc.append("mysqlgis")
|
||||
urlparse.uses_netloc.append("mysql-connector")
|
||||
urlparse.uses_netloc.append("mssql")
|
||||
urlparse.uses_netloc.append("mssqlms")
|
||||
urlparse.uses_netloc.append("spatialite")
|
||||
urlparse.uses_netloc.append("sqlite")
|
||||
urlparse.uses_netloc.append("oracle")
|
||||
|
|
@ -39,6 +40,7 @@ SCHEMES = {
|
|||
"mysqlgis": "django.contrib.gis.db.backends.mysql",
|
||||
"mysql-connector": "mysql.connector.django",
|
||||
"mssql": "sql_server.pyodbc",
|
||||
"mssqlms": "mssql",
|
||||
"spatialite": "django.contrib.gis.db.backends.spatialite",
|
||||
"sqlite": "django.db.backends.sqlite3",
|
||||
"oracle": "django.db.backends.oracle",
|
||||
|
|
@ -117,7 +119,8 @@ def parse(url, engine=None, conn_max_age=0, ssl_require=False):
|
|||
|
||||
port = (
|
||||
str(url.port)
|
||||
if url.port and engine in [SCHEMES["oracle"], SCHEMES["mssql"]]
|
||||
if url.port
|
||||
and engine in [SCHEMES["oracle"], SCHEMES["mssql"], SCHEMES["mssqlms"]]
|
||||
else url.port
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -355,6 +355,19 @@ class DatabaseTestSuite(unittest.TestCase):
|
|||
assert url['OPTIONS']['sslcert'] == '/certs/client.myprojectuser.crt'
|
||||
assert url['OPTIONS']['sslkey'] == '/certs/client.myprojectuser.key'
|
||||
|
||||
def test_mssqlms_parsing(self):
|
||||
url = "mssqlms://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com/d8r82722r2kuvn?driver=ODBC Driver 13 for SQL Server"
|
||||
url = dj_database_url.parse(url)
|
||||
|
||||
assert url["ENGINE"] == "mssql"
|
||||
assert url["NAME"] == "d8r82722r2kuvn"
|
||||
assert url["HOST"] == "ec2-107-21-253-135.compute-1.amazonaws.com"
|
||||
assert url["USER"] == "uf07k1i6d8ia0v"
|
||||
assert url["PASSWORD"] == "wegauwhgeuioweg"
|
||||
assert url["PORT"] == ""
|
||||
assert url["OPTIONS"]["driver"] == "ODBC Driver 13 for SQL Server"
|
||||
assert "currentSchema" not in url["OPTIONS"]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Reference in a new issue