parent
e50aff8736
commit
734a69c9a7
|
|
@ -59,7 +59,7 @@ See the [`DATABASES`](#databases) configuration below for usage.
|
||||||
|
|
||||||
## DATABASES
|
## DATABASES
|
||||||
|
|
||||||
NetBox requires access to a PostgreSQL 14 or later database service to store data. This service can run locally on the NetBox server or on a remote system. Databases are defined as named dictionaries:
|
NetBox requires access to a PostgreSQL 14 or later database service to store data. Note that support for PostgreSQL 14 is deprecated and will be removed in NetBox v4.7; PostgreSQL 15 or later will be required. This service can run locally on the NetBox server or on a remote system. Databases are defined as named dictionaries:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@ This section entails the installation and configuration of a local PostgreSQL da
|
||||||
!!! warning "PostgreSQL 14 or later required"
|
!!! warning "PostgreSQL 14 or later required"
|
||||||
NetBox requires PostgreSQL 14 or later. Please note that MySQL and other relational databases are **not** supported.
|
NetBox requires PostgreSQL 14 or later. Please note that MySQL and other relational databases are **not** supported.
|
||||||
|
|
||||||
|
!!! warning "PostgreSQL 14 deprecation notice"
|
||||||
|
Support for PostgreSQL 14 is deprecated as of NetBox v4.6 and will be removed in NetBox v4.7. Please plan to upgrade to PostgreSQL 15 or later.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```no-highlight
|
```no-highlight
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,11 @@ The following sections detail how to set up a new instance of NetBox:
|
||||||
| Dependency | Supported Versions |
|
| Dependency | Supported Versions |
|
||||||
|------------|--------------------|
|
|------------|--------------------|
|
||||||
| Python | 3.12, 3.13, 3.14 |
|
| Python | 3.12, 3.13, 3.14 |
|
||||||
| PostgreSQL | 14+ |
|
| PostgreSQL | 14+ [^1] |
|
||||||
| Redis | 4.0+ |
|
| Redis | 4.0+ |
|
||||||
|
|
||||||
|
[^1]: Support for PostgreSQL 14 is deprecated and will be removed in NetBox v4.7. PostgreSQL 15 or later will be required.
|
||||||
|
|
||||||
Below is a simplified overview of the NetBox application stack for reference:
|
Below is a simplified overview of the NetBox application stack for reference:
|
||||||
|
|
||||||

|

|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,16 @@ NetBox requires the following dependencies:
|
||||||
| Dependency | Supported Versions |
|
| Dependency | Supported Versions |
|
||||||
|------------|--------------------|
|
|------------|--------------------|
|
||||||
| Python | 3.12, 3.13, 3.14 |
|
| Python | 3.12, 3.13, 3.14 |
|
||||||
| PostgreSQL | 14+ |
|
| PostgreSQL | 14+ [^1] |
|
||||||
| Redis | 4.0+ |
|
| Redis | 4.0+ |
|
||||||
|
|
||||||
|
[^1]: Support for PostgreSQL 14 is deprecated and will be removed in NetBox v4.7. PostgreSQL 15 or later will be required.
|
||||||
|
|
||||||
### Version History
|
### Version History
|
||||||
|
|
||||||
| NetBox Version | Python min | Python max | PostgreSQL min | Redis min | Documentation |
|
| NetBox Version | Python min | Python max | PostgreSQL min | Redis min | Documentation |
|
||||||
|:--------------:|:----------:|:----------:|:--------------:|:---------:|:-----------------------------------------------------------------------------------------:|
|
|:--------------:|:----------:|:----------:|:--------------:|:---------:|:-----------------------------------------------------------------------------------------:|
|
||||||
|
| 4.6 | 3.12 | 3.14 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.6.0/docs/installation/index.md) |
|
||||||
| 4.5 | 3.12 | 3.14 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.5.0/docs/installation/index.md) |
|
| 4.5 | 3.12 | 3.14 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.5.0/docs/installation/index.md) |
|
||||||
| 4.4 | 3.10 | 3.12 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.4.0/docs/installation/index.md) |
|
| 4.4 | 3.10 | 3.12 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.4.0/docs/installation/index.md) |
|
||||||
| 4.3 | 3.10 | 3.12 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.3.0/docs/installation/index.md) |
|
| 4.3 | 3.10 | 3.12 | 14 | 4.0 | [Link](https://github.com/netbox-community/netbox/blob/v4.3.0/docs/installation/index.md) |
|
||||||
|
|
|
||||||
|
|
@ -79,5 +79,7 @@ NetBox is built on the [Django](https://djangoproject.com/) Python framework and
|
||||||
| HTTP service | nginx or Apache |
|
| HTTP service | nginx or Apache |
|
||||||
| WSGI service | gunicorn or uWSGI |
|
| WSGI service | gunicorn or uWSGI |
|
||||||
| Application | Django/Python |
|
| Application | Django/Python |
|
||||||
| Database | PostgreSQL 14+ |
|
| Database | PostgreSQL 14+ [^1] |
|
||||||
| Task queuing | Redis/django-rq |
|
| Task queuing | Redis/django-rq |
|
||||||
|
|
||||||
|
[^1]: Support for PostgreSQL 14 is deprecated and will be removed in NetBox v4.7. PostgreSQL 15 or later will be required.
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class CoreConfig(AppConfig):
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
from core.api import schema # noqa: F401
|
from core.api import schema # noqa: F401
|
||||||
from core.checks import check_duplicate_indexes # noqa: F401
|
from core.checks import check_duplicate_indexes, check_postgresql_version # noqa: F401
|
||||||
from netbox import context_managers # noqa: F401
|
from netbox import context_managers # noqa: F401
|
||||||
from netbox.models.features import register_models
|
from netbox.models.features import register_models
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.core.checks import Error, Tags, register
|
from django.core.checks import Error, Tags, Warning, register
|
||||||
|
from django.db import connection
|
||||||
from django.db.models import Index, UniqueConstraint
|
from django.db.models import Index, UniqueConstraint
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'check_duplicate_indexes',
|
'check_duplicate_indexes',
|
||||||
|
'check_postgresql_version',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -39,3 +41,29 @@ def check_duplicate_indexes(app_configs, **kwargs):
|
||||||
)
|
)
|
||||||
|
|
||||||
return errors
|
return errors
|
||||||
|
|
||||||
|
|
||||||
|
@register(Tags.database)
|
||||||
|
def check_postgresql_version(app_configs, **kwargs):
|
||||||
|
"""
|
||||||
|
Warn if the PostgreSQL version is less than 15, as support for PostgreSQL 14
|
||||||
|
will be removed in NetBox v4.7.
|
||||||
|
"""
|
||||||
|
warnings = []
|
||||||
|
try:
|
||||||
|
with connection.cursor() as cursor:
|
||||||
|
cursor.execute('SHOW server_version_num')
|
||||||
|
row = cursor.fetchone()
|
||||||
|
pg_version = int(row[0])
|
||||||
|
if pg_version < 150000:
|
||||||
|
major_version = pg_version // 10000
|
||||||
|
warnings.append(
|
||||||
|
Warning(
|
||||||
|
f'Support for PostgreSQL {major_version} is deprecated and will be removed in NetBox v4.7.',
|
||||||
|
hint='Please upgrade to PostgreSQL 15 or later.',
|
||||||
|
id='netbox.W001',
|
||||||
|
)
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return warnings
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue