summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'python/tbc_www/router.py')
-rw-r--r--python/tbc_www/router.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/python/tbc_www/router.py b/python/tbc_www/router.py
new file mode 100644
index 0000000..aa16759
--- /dev/null
+++ b/python/tbc_www/router.py
@@ -0,0 +1,30 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+class TBCRouter(object):
+ def db_for_read(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'tbc_www':
+ return 'zobcs'
+ return 'default'
+
+ def db_for_write(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'tbc_www':
+ return 'zobcs'
+ return 'default'
+
+ def allow_relation(self, obj1, obj2, **hints):
+ "Allow any relation if a both models in zobcs app"
+ if obj1._meta.app_label == 'tbc_www' and obj2._meta.app_label == 'tbc_www':
+ return True
+ # Allow if neither is zobcs app
+ elif 'tbc_www' not in [obj1._meta.app_label, obj2._meta.app_label]:
+ return True
+ return False
+
+ def allow_migrate(self, db, model):
+ if db == 'zobcs' or model._meta.app_label == "tbc_www":
+ return False # we're not using syncdb on our legacy database
+ else: # but all other models/databases are fine
+ return True