db_prefix/apps.py (17 lines of code) (raw):

from django.conf import settings from django.db.models.signals import class_prepared, pre_init from django.apps import AppConfig import logging logger = logging.getLogger("opbeans") def add_db_prefix(sender, **kwargs): prefix = getattr(settings, "DB_PREFIX", None) if prefix and not prefix.endswith("_"): prefix += "_" if prefix and not sender._meta.db_table.startswith(prefix): sender._meta.db_table = prefix + sender._meta.db_table class DbPrefixApp(AppConfig): name = "db_prefix" def ready(self): pre_init.connect(add_db_prefix) class_prepared.connect(add_db_prefix) logger.info("CONNECTED PREFIX SIGNALS")