mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 20:16:44 +00:00
Merge pull request #2168 from SchrodingersGat/db-options-cleanup
Add support for backend-specific database functionality
This commit is contained in:
commit
b54a948e73
@ -385,39 +385,6 @@ Q_CLUSTER = {
|
|||||||
'sync': False,
|
'sync': False,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Markdownx configuration
|
|
||||||
# Ref: https://neutronx.github.io/django-markdownx/customization/
|
|
||||||
MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d')
|
|
||||||
|
|
||||||
# Markdownify configuration
|
|
||||||
# Ref: https://django-markdownify.readthedocs.io/en/latest/settings.html
|
|
||||||
|
|
||||||
MARKDOWNIFY_WHITELIST_TAGS = [
|
|
||||||
'a',
|
|
||||||
'abbr',
|
|
||||||
'b',
|
|
||||||
'blockquote',
|
|
||||||
'em',
|
|
||||||
'h1', 'h2', 'h3',
|
|
||||||
'i',
|
|
||||||
'img',
|
|
||||||
'li',
|
|
||||||
'ol',
|
|
||||||
'p',
|
|
||||||
'strong',
|
|
||||||
'ul'
|
|
||||||
]
|
|
||||||
|
|
||||||
MARKDOWNIFY_WHITELIST_ATTRS = [
|
|
||||||
'href',
|
|
||||||
'src',
|
|
||||||
'alt',
|
|
||||||
]
|
|
||||||
|
|
||||||
MARKDOWNIFY_BLEACH = False
|
|
||||||
|
|
||||||
DATABASES = {}
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Configure the database backend based on the user-specified values.
|
Configure the database backend based on the user-specified values.
|
||||||
|
|
||||||
@ -484,7 +451,47 @@ logger.info(f"DB_ENGINE: {db_engine}")
|
|||||||
logger.info(f"DB_NAME: {db_name}")
|
logger.info(f"DB_NAME: {db_name}")
|
||||||
logger.info(f"DB_HOST: {db_host}")
|
logger.info(f"DB_HOST: {db_host}")
|
||||||
|
|
||||||
DATABASES['default'] = db_config
|
"""
|
||||||
|
In addition to base-level database configuration, we may wish to specify specific options to the database backend
|
||||||
|
Ref: https://docs.djangoproject.com/en/3.2/ref/settings/#std:setting-OPTIONS
|
||||||
|
"""
|
||||||
|
|
||||||
|
# 'OPTIONS' or 'options' can be specified in config.yaml
|
||||||
|
db_options = db_config.get('OPTIONS', db_config.get('options', {}))
|
||||||
|
|
||||||
|
# Specific options for postgres backend
|
||||||
|
if 'postgres' in db_engine:
|
||||||
|
from psycopg2.extensions import ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_SERIALIZABLE
|
||||||
|
|
||||||
|
# Connection timeout
|
||||||
|
if 'connect_timeout' not in db_options:
|
||||||
|
db_options['connect_timeout'] = int(os.getenv('INVENTREE_DB_TIMEOUT', 2))
|
||||||
|
|
||||||
|
# Postgres's default isolation level is Read Committed which is
|
||||||
|
# normally fine, but most developers think the database server is
|
||||||
|
# actually going to do Serializable type checks on the queries to
|
||||||
|
# protect against simultaneous changes.
|
||||||
|
if 'isolation_level' not in db_options:
|
||||||
|
serializable = _is_true(os.getenv("PG_ISOLATION_SERIALIZABLE", "true"))
|
||||||
|
db_options['isolation_level'] = ISOLATION_LEVEL_SERIALIZABLE if serializable else ISOLATION_LEVEL_READ_COMMITTED
|
||||||
|
|
||||||
|
# Specific options for MySql / MariaDB backend
|
||||||
|
if 'mysql' in db_engine:
|
||||||
|
# TODO
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Specific options for sqlite backend
|
||||||
|
if 'sqlite' in db_engine:
|
||||||
|
# TODO
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Provide OPTIONS dict back to the database configuration dict
|
||||||
|
db_config['OPTIONS'] = db_options
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': db_config
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
CACHES = {
|
CACHES = {
|
||||||
'default': {
|
'default': {
|
||||||
@ -683,3 +690,34 @@ ACCOUNT_FORMS = {
|
|||||||
|
|
||||||
SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
|
SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
|
||||||
ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
|
ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
|
||||||
|
|
||||||
|
# Markdownx configuration
|
||||||
|
# Ref: https://neutronx.github.io/django-markdownx/customization/
|
||||||
|
MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d')
|
||||||
|
|
||||||
|
# Markdownify configuration
|
||||||
|
# Ref: https://django-markdownify.readthedocs.io/en/latest/settings.html
|
||||||
|
|
||||||
|
MARKDOWNIFY_WHITELIST_TAGS = [
|
||||||
|
'a',
|
||||||
|
'abbr',
|
||||||
|
'b',
|
||||||
|
'blockquote',
|
||||||
|
'em',
|
||||||
|
'h1', 'h2', 'h3',
|
||||||
|
'i',
|
||||||
|
'img',
|
||||||
|
'li',
|
||||||
|
'ol',
|
||||||
|
'p',
|
||||||
|
'strong',
|
||||||
|
'ul'
|
||||||
|
]
|
||||||
|
|
||||||
|
MARKDOWNIFY_WHITELIST_ATTRS = [
|
||||||
|
'href',
|
||||||
|
'src',
|
||||||
|
'alt',
|
||||||
|
]
|
||||||
|
|
||||||
|
MARKDOWNIFY_BLEACH = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user