From 93b912c2da83c1f569df8abad9df6604116b4e21 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Thu, 4 May 2023 10:36:52 -0700 Subject: [PATCH] Adds ENGINE to database config (#12458) * adds ENGINE to database config #11791 * fixed lint issues * updated doc --- docs/configuration/required-parameters.md | 5 +++++ netbox/netbox/configuration_example.py | 1 + netbox/netbox/settings.py | 19 ++++++++++--------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/docs/configuration/required-parameters.md b/docs/configuration/required-parameters.md index c35f90f7b..1eba265bf 100644 --- a/docs/configuration/required-parameters.md +++ b/docs/configuration/required-parameters.md @@ -33,11 +33,13 @@ NetBox requires access to a PostgreSQL 11 or later database service to store dat * `HOST` - Name or IP address of the database server (use `localhost` if running locally) * `PORT` - TCP port of the PostgreSQL service; leave blank for default port (TCP/5432) * `CONN_MAX_AGE` - Lifetime of a [persistent database connection](https://docs.djangoproject.com/en/stable/ref/databases/#persistent-connections), in seconds (300 is the default) +* `ENGINE` - The database backend to use; must be a PostgreSQL-compatible backend (e.g. `django.db.backends.postgresql`) Example: ```python DATABASE = { + 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password @@ -50,6 +52,9 @@ DATABASE = { !!! note NetBox supports all PostgreSQL database options supported by the underlying Django framework. For a complete list of available parameters, please see [the Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#databases). +!!! warning + Make sure to use a PostgreSQL-compatible backend for the ENGINE setting. If you don't specify an ENGINE, the default will be django.db.backends.postgresql. + --- ## REDIS diff --git a/netbox/netbox/configuration_example.py b/netbox/netbox/configuration_example.py index 4878ec520..f415ca42f 100644 --- a/netbox/netbox/configuration_example.py +++ b/netbox/netbox/configuration_example.py @@ -13,6 +13,7 @@ ALLOWED_HOSTS = [] # PostgreSQL database configuration. See the Django documentation for a complete list of available parameters: # https://docs.djangoproject.com/en/stable/ref/settings/#databases DATABASE = { + 'ENGINE': 'django.db.backends.postgresql', # Database engine 'NAME': 'netbox', # Database name 'USER': '', # PostgreSQL username 'PASSWORD': '', # PostgreSQL password diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 6608fcb8f..206b00fe7 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -182,15 +182,16 @@ if RELEASE_CHECK_URL: # Database # -# Only PostgreSQL is supported -if METRICS_ENABLED: - DATABASE.update({ - 'ENGINE': 'django_prometheus.db.backends.postgresql' - }) -else: - DATABASE.update({ - 'ENGINE': 'django.db.backends.postgresql' - }) +if 'ENGINE' not in DATABASE: + # Only PostgreSQL is supported + if METRICS_ENABLED: + DATABASE.update({ + 'ENGINE': 'django_prometheus.db.backends.postgresql' + }) + else: + DATABASE.update({ + 'ENGINE': 'django.db.backends.postgresql' + }) DATABASES = { 'default': DATABASE,