os.path.join(ROOT_DIR, 'htdocs'),
]
+# Database
+#
+# If you're using a postgres database, connecting over a local unix-domain
+# socket, then the following setting should work for you. Otherwise,
+# see https://docs.djangoproject.com/en/2.2/ref/settings/#databases
+
+if os.getenv('DATABASE_TYPE') == 'postgres':
+ DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql_psycopg2',
+ 'HOST': os.environ.get('DATABASE_HOST', 'localhost'),
+ 'PORT': os.environ.get('DATABASE_PORT', ''),
+ 'NAME': os.environ.get('DATABASE_NAME', 'patchwork'),
+ 'USER': os.environ.get('DATABASE_USER', 'patchwork'),
+ 'PASSWORD': os.environ.get('DATABASE_PASSWORD', 'password'),
+ },
+ }
+elif os.getenv('DATABASE_TYPE') == 'sqlite3':
+ DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': os.environ.get('DATABASE_NAME', ''),
+ },
+ }
+else: # mysql
+ DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.mysql',
+ 'HOST': os.getenv('DATABASE_HOST', 'localhost'),
+ 'PORT': os.getenv('DATABASE_PORT', ''),
+ 'NAME': os.getenv('DATABASE_NAME', 'patchwork'),
+ 'USER': os.getenv('DATABASE_USER', 'patchwork'),
+ 'PASSWORD': os.getenv('DATABASE_PASSWORD', 'password'),
+ 'TEST': {
+ 'CHARSET': 'utf8',
+ },
+ },
+ }
+
#
# Third-party application settings
#
http://www.revsys.com/blog/2014/nov/21/recommended-django-project-layout/
"""
-import os
-
from .base import * # noqa
try:
DEBUG = True
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'HOST': os.getenv('DATABASE_HOST', 'localhost'),
- 'PORT': os.getenv('DATABASE_PORT', ''),
- 'USER': os.getenv('DATABASE_USER', 'patchwork'),
- 'PASSWORD': os.getenv('DATABASE_PASSWORD', 'password'),
- 'NAME': os.getenv('DATABASE_NAME', 'patchwork'),
- 'TEST': {
- 'CHARSET': 'utf8',
- },
- },
-}
-
-if os.getenv('DATABASE_TYPE', None) == 'postgres':
- DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2'
- DATABASES['default']['HOST'] = os.getenv('DATABASE_HOST', '')
-elif os.getenv('DATABASE_TYPE', None) == 'sqlite':
- DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3'
- DATABASES['default']['NAME'] = '/dev/shm/patchwork.test.db.sqlite3'
- del DATABASES['default']['HOST']
- del DATABASES['default']['PORT']
- del DATABASES['default']['USER']
- del DATABASES['default']['PASSWORD']
+if DATABASES['default']['ENGINE'] == 'mysql': # noqa: F405
+ DATABASES['default']['TEST'] = {'CHARSET': 'utf8'} # noqa: F405
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# ('Jeremy Kerr', 'jk@ozlabs.org'),
)
-# Database
-#
-# If you're using a postgres database, connecting over a local unix-domain
-# socket, then the following setting should work for you. Otherwise,
-# see https://docs.djangoproject.com/en/2.2/ref/settings/#databases
-
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.postgresql_psycopg2',
- 'NAME': os.environ.get('DATABASE_NAME', ''),
- 'USER': os.environ.get('DATABASE_USER', ''),
- 'PASSWORD': os.environ.get('DATABASE_PASSWORD', ''),
- 'HOST': os.environ.get('DATABASE_HOST', ''),
- 'PORT': os.environ.get('DATABASE_PORT', ''),
- },
-}
-
#
# Static files settings
# https://docs.djangoproject.com/en/2.2/ref/settings/#static-files
--- /dev/null
+---
+upgrade:
+ - |
+ Database configuration has been added to ``patchwork.settings.base``.
+ Previously, this had to be specified in the ``settings.py`` file manually
+ created by admins. The following environment variables can now be used to
+ configure the settings:
+
+ - ``DATABASE_TYPE`` (one of: ``postgres``, ``sqlite3``, ``mysql``;
+ default: ``mysql``)
+ - ``DATABASE_HOST`` (default: ``localhost``)
+ - ``DATABASE_PORT`` (default: ``<unset>``)
+ - ``DATABASE_NAME`` (default: ``patchwork``)
+ - ``DATABASE_USER`` (default: ``patchwork``)
+ - ``DATABASE_PASSWORD`` (default: ``patchwork``)
+
+ If you are manually defining ``DATABASES`` in your ``settings.py`` file,
+ this should have no impact. However, you may wish to rework your deployment
+ to use environment variables instead.