# >>> in models.py >>> # Add recognized model option to django import django.db.models.options as options options.DEFAULT_NAMES = options.DEFAULT_NAMES + ('in_db',) # <<< # >>> in routers.py >>> class ModelDatabaseRouter(object): """Allows each model to set its own destiny""" def db_for_read(self, model, **hints): # Specify target database with field in_db in model's Meta class if hasattr(model._meta, 'in_db'): return model._meta.in_db return None def db_for_write(self, model, **hints): # Specify target database with field in_db in model's Meta class if hasattr(model._meta, 'in_db'): return model._meta.in_db return None def allow_syncdb(self, db, model): # Specify target database with field in_db in model's Meta class if hasattr(model._meta, 'in_db'): if model._meta.in_db == db: return True else: return False else: # Random models that don't specify a database can only go to 'default' if db == 'default': return True else: return False # <<<