diff options
Diffstat (limited to 'python/tbc_www/router.py')
-rw-r--r-- | python/tbc_www/router.py | 30 |
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 |