diff --git a/src/colab/custom_settings.py b/src/colab/custom_settings.py index 2e1b209..d63bd6b 100644 --- a/src/colab/custom_settings.py +++ b/src/colab/custom_settings.py @@ -22,6 +22,25 @@ HAYSTACK_CONNECTIONS = { } } +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'colab', + 'USER': 'colab', + 'PASSWORD': os.environ.get('COLAB_DEFAULT_DB_PWD'), + 'HOST': os.environ.get('COLAB_DEFAULT_DB_HOST'), + }, + 'trac': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'trac', + 'USER': 'trac', + 'PASSWORD': os.environ.get('COLAB_TRAC_DB_PWD'), + 'HOST': os.environ.get('COLAB_TRAC_DB_HOST'), + } +} + +DATABASE_ROUTERS = ['colab.routers.TracRouter',] + INSTALLED_APPS = INSTALLED_APPS + ( # Not standard apps diff --git a/src/colab/routers.py b/src/colab/routers.py new file mode 100644 index 0000000..9d053cb --- /dev/null +++ b/src/colab/routers.py @@ -0,0 +1,23 @@ +class TracRouter(object): + def db_for_read(self, model, **hints): + if model._meta.app_label == 'proxy': + return 'trac' + return None + + def db_for_write(self, model, **hints): + if model._meta.app_label == 'proxy': + return 'trac' + return None + + def allow_relation(self, obj1, obj2, **hints): + if obj1._meta.app_label == 'proxy' or \ + obj2._meta.app_label == 'proxy': + return True + return None + + def allow_migrate(self, db, model): + if db == 'trac': + return model._meta.app_label == 'proxy' + elif model._meta.app_label == 'proxy': + False + return None -- libgit2 0.21.2