4.2. Settings Databases

4.2.1. SQLite3

>>> 
... DATABASES = {
...     'default': {
...         'ENGINE': 'django.db.backends.sqlite3',
...         'NAME': BASE_DIR / 'db.sqlite3',
...     }
... }

4.2.2. PostgreSQL

>>> 
... DATABASES = {
...     'default': {
...         'ENGINE': 'django.db.backends.postgresql',
...         'NAME': 'myproject',
...         'USER': 'myusername',
...         'PASSWORD': 'mypassword',
...         'HOST': 'localhost',
...         'PORT': 5432,
...     }
... }

4.2.3. Heroku

>>> 
... if os.getenv('DATABASE_URL'):
...     import dj_database_url
...     DATABASES['default'] = dj_database_url.config()

4.2.4. Multiple Databases

>>> 
... DATABASES = {
...     'default': {
...         'ENGINE': 'django.db.backends.postgresql',
...         'NAME': 'myproject',
...         'USER': 'myusername',
...         'PASSWORD': 'mypassword',
...         'HOST': '192.168.0.2',
...         'PORT': 5432,
...     },
...     'replica': {
...         'ENGINE': 'django.db.backends.postgresql',
...         'NAME': 'myproject',
...         'USER': 'myusername',
...         'PASSWORD': 'mypassword',
...         'HOST': '192.168.0.3',
...         'PORT': 5432,
...     }
... }

File myproject/dbrouter.py:

>>> 
... class EcosystemDBRouter(object):
...     ecosystem = ['confluence', 'jira', 'stash', 'bamboo', 'sonar']
...
...     def db_for_read(self, model, **hints):
...         if model._meta.app_label in self.ecosystem:
...             return model._meta.app_label
...         else:
...             return 'default'
...
...     def db_for_write(self, model, **hints):
...         return 'default'
...
...     def allow_relation(self, obj1, obj2, **hints):
...         if obj1._meta.app_label in self.ecosystem:
...             return False
...         elif obj2._meta.app_label in self.ecosystem:
...             return False
...         return True
...
...     def allow_syncdb(self, db, model):
...         if model._meta.app_label in self.ecosystem:
...             return False
...         else:
...             return True