|
|
@@ -3,43 +3,38 @@ class BotRouter:
|
|
|
A router to control all database operations on models in the
|
|
|
auth application.
|
|
|
"""
|
|
|
+ route_app_labels = {'config', 'stats'}
|
|
|
+
|
|
|
def db_for_read(self, model, **hints):
|
|
|
"""
|
|
|
- Attempts to read auth models go to auth_db.
|
|
|
+ Attempts to read auth models go to bot_db.
|
|
|
"""
|
|
|
- if model._meta.app_label == 'config':
|
|
|
- return 'bot_db'
|
|
|
- elif model._meta.app_label == 'stats':
|
|
|
+ if model._meta.app_label in self.route_app_labels:
|
|
|
return 'bot_db'
|
|
|
return None
|
|
|
|
|
|
def db_for_write(self, model, **hints):
|
|
|
"""
|
|
|
- Attempts to write auth models go to auth_db.
|
|
|
+ Attempts to write auth models go to bot_db.
|
|
|
"""
|
|
|
- if model._meta.app_label == 'config':
|
|
|
- return 'bot_db'
|
|
|
- elif model._meta.app_label == 'stats':
|
|
|
+ if model._meta.app_label in self.route_app_labels:
|
|
|
return 'bot_db'
|
|
|
return None
|
|
|
|
|
|
def allow_relation(self, obj1, obj2, **hints):
|
|
|
"""
|
|
|
- Allow relations if a model in the auth app is involved.
|
|
|
+ Allow relations if a model in the auth or contenttypes apps is
|
|
|
+ involved.
|
|
|
"""
|
|
|
- if obj1._meta.app_label == 'config' or obj2._meta.app_label == 'config':
|
|
|
- return False
|
|
|
- elif obj1._meta.app_label == 'stats' or obj2._meta.app_label == 'stats':
|
|
|
- return False
|
|
|
+ if (obj1._meta.app_label in self.route_app_labels or obj2._meta.app_label in self.route_app_labels):
|
|
|
+ return True
|
|
|
return None
|
|
|
|
|
|
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
|
|
"""
|
|
|
- Make sure the auth app only appears in the 'auth_db'
|
|
|
- database.
|
|
|
+ Make sure the "route_app_labels" apps only appear in the
|
|
|
+ 'bot_db' database.
|
|
|
"""
|
|
|
- if app_label == 'config':
|
|
|
- return False
|
|
|
- elif app_label == 'stats':
|
|
|
- return False
|
|
|
+ if app_label in self.route_app_labels:
|
|
|
+ return db == 'bot_db'
|
|
|
return None
|