diff --git a/netbox_branching/__init__.py b/netbox_branching/__init__.py index e4261e4..835a969 100644 --- a/netbox_branching/__init__.py +++ b/netbox_branching/__init__.py @@ -1,3 +1,6 @@ +from django.conf import settings +from django.core.exceptions import ImproperlyConfigured + from netbox.plugins import PluginConfig from netbox.registry import registry @@ -23,6 +26,17 @@ class AppConfig(PluginConfig): def ready(self): super().ready() from . import constants, events, search, signal_receivers + from .utilities import DynamicSchemaDict + + # Validate required settings + if type(settings.DATABASES) is not DynamicSchemaDict: + raise ImproperlyConfigured( + "netbox_branching: DATABASES must be a DynamicSchemaDict instance." + ) + if 'netbox_branching.database.BranchAwareRouter' not in settings.DATABASE_ROUTERS: + raise ImproperlyConfigured( + "netbox_branching: DATABASE_ROUTERS must contain 'netbox_branching.database.BranchAwareRouter'." + ) # Record all object types which support branching in the NetBox registry if 'branching' not in registry['model_features']: