Merge pull request #145 from palfrey/cockroachdb

Add CockroachDB to supported database options
This commit is contained in:
Matt Seymour 2022-05-24 21:36:51 +01:00 committed by GitHub
commit e1b62fde7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View file

@ -26,7 +26,7 @@ Supported Databases
-------------------
Support currently exists for PostgreSQL, PostGIS, MySQL, MySQL (GIS),
Oracle, Oracle (GIS), Redshift, and SQLite.
Oracle, Oracle (GIS), Redshift, CockroachDB, and SQLite.
Installation
------------
@ -83,6 +83,8 @@ URL schema
+-------------+-----------------------------------------------+--------------------------------------------------+
| Redshift | ``django_redshift_backend`` | ``redshift://USER:PASSWORD@HOST:PORT/NAME`` |
+-------------+-----------------------------------------------+--------------------------------------------------+
| CockroachDB | ``django_cockroachdb`` | ``cockroach://USER:PASSWORD@HOST:PORT/NAME`` |
+-------------+-----------------------------------------------+--------------------------------------------------+
.. [1] The django.db.backends.postgresql backend is named django.db.backends.postgresql_psycopg2 in older releases. For
backwards compatibility, the old name still works in newer versions. (The new name does not work in older versions).

View file

@ -28,6 +28,7 @@ urlparse.uses_netloc.append("sqlite")
urlparse.uses_netloc.append("oracle")
urlparse.uses_netloc.append("oraclegis")
urlparse.uses_netloc.append("redshift")
urlparse.uses_netloc.append("cockroach")
DEFAULT_ENV = "DATABASE_URL"
@ -43,6 +44,7 @@ SCHEMES = {
"oracle": "django.db.backends.oracle",
"oraclegis": "django.contrib.gis.db.backends.oracle",
"redshift": "django_redshift_backend",
"cockroach": "django_cockroachdb",
}
# https://docs.djangoproject.com/en/2.0/releases/2.0/#id1

View file

@ -341,6 +341,20 @@ class DatabaseTestSuite(unittest.TestCase):
assert url["OPTIONS"]["driver"] == "ODBC Driver 13 for SQL Server"
assert "currentSchema" not in url["OPTIONS"]
def test_cockroach(self):
url = "cockroach://testuser:testpass@testhost:26257/cockroach?sslmode=verify-full&sslrootcert=/certs/ca.crt&sslcert=/certs/client.myprojectuser.crt&sslkey=/certs/client.myprojectuser.key"
url = dj_database_url.parse(url)
assert url['ENGINE'] == 'django_cockroachdb'
assert url['NAME'] == 'cockroach'
assert url['HOST'] == 'testhost'
assert url['USER'] == 'testuser'
assert url['PASSWORD'] == 'testpass'
assert url['PORT'] == 26257
assert url['OPTIONS']['sslmode'] == 'verify-full'
assert url['OPTIONS']['sslrootcert'] == '/certs/ca.crt'
assert url['OPTIONS']['sslcert'] == '/certs/client.myprojectuser.crt'
assert url['OPTIONS']['sslkey'] == '/certs/client.myprojectuser.key'
if __name__ == "__main__":
unittest.main()