changed db routing to better facilitate plugin support
This commit is contained in:
parent
b65ef99935
commit
017e473b4d
@ -23,13 +23,6 @@ with open( BASE_DIR + "/settings.json", "r") as userfile:
|
||||
INTERNAL_IPS = usersettings["INTERNAL_IPS"]
|
||||
|
||||
|
||||
# CALIBRE_DIR = os.path.abspath(
|
||||
# "C:\\Users\\MassiveAtoms\\Documents\\Calibre Library")
|
||||
# SECRET_KEY = 'u(8^+rb%rz5hsx4v^^y(ul7g(4n7a8!db@s*9(m5cs*2_ppy8+'
|
||||
# ALLOWED_HOSTS = ['127.0.0.1', ]
|
||||
# INTERNAL_IPS = ['127.0.0.1', ]
|
||||
|
||||
|
||||
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
|
||||
@ -99,11 +92,13 @@ INSTALLED_APPS = [
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
"library",
|
||||
'debug_toolbar', # DEBUG purposes
|
||||
# "silk",
|
||||
# 'debug_toolbar', # DEBUG purposes
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
|
||||
# 'silk.middleware.SilkyMiddleware', # DEBUG/profiling purposes
|
||||
# 'debug_toolbar.middleware.DebugToolbarMiddleware', # DEBUG purposes
|
||||
'django.middleware.cache.UpdateCacheMiddleware', # cache
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
@ -138,8 +133,9 @@ TEMPLATES = [
|
||||
|
||||
WSGI_APPLICATION = 'CalibreWebCompanion.wsgi.application'
|
||||
|
||||
|
||||
# Database
|
||||
## ##
|
||||
########################################################################
|
||||
## DATBASE ##
|
||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
@ -154,7 +150,7 @@ DATABASES = {
|
||||
}
|
||||
|
||||
|
||||
DATABASE_ROUTERS = ["db_routers.DjangoRouter", "db_routers.CalibreRouter"]
|
||||
DATABASE_ROUTERS = [ "db_routers.CalibreRouter", "db_routers.DjangoRouter"]
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
|
||||
|
@ -30,8 +30,9 @@ urlpatterns = [
|
||||
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
||||
|
||||
|
||||
if settings.DEBUG: # DEBUG purposes
|
||||
import debug_toolbar
|
||||
urlpatterns = [
|
||||
path('__debug__/', include(debug_toolbar.urls)),
|
||||
] + urlpatterns
|
||||
# if settings.DEBUG: # DEBUG purposes
|
||||
# urlpatterns+= [path('silk/', include('silk.urls', namespace='silk'))]
|
||||
# import debug_toolbar
|
||||
# urlpatterns = [
|
||||
# path('__debug__/', include(debug_toolbar.urls)),
|
||||
# ] + urlpatterns
|
||||
|
@ -5,22 +5,45 @@ class DjangoRouter:
|
||||
A router to control all database operations on models in the
|
||||
auth and contenttypes applications.
|
||||
"""
|
||||
route_app_labels = {'auth', 'contenttypes', "sessions", "sites", "admin", "flatpages"}
|
||||
def db_for_read(self, model, **hints):
|
||||
"""
|
||||
Attempts to read anything else goes to calibre
|
||||
"""
|
||||
return 'default'
|
||||
|
||||
def db_for_write(self, model, **hints):
|
||||
"""
|
||||
Attempts to write auth and contenttypes models go to 'calibre'.
|
||||
"""
|
||||
return 'default'
|
||||
|
||||
def allow_relation(self, obj1, obj2, **hints):
|
||||
"""
|
||||
Allow relations.
|
||||
"""
|
||||
return True
|
||||
|
||||
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
||||
"""
|
||||
Yes
|
||||
"""
|
||||
return True
|
||||
|
||||
|
||||
|
||||
class CalibreRouter:
|
||||
"""
|
||||
A router to control all database operations on models in the
|
||||
auth and contenttypes applications.
|
||||
"""
|
||||
route_app_labels = {"library"}
|
||||
|
||||
def db_for_read(self, model, **hints):
|
||||
"""
|
||||
Attempts to read auth and contenttypes models go to default.
|
||||
"""
|
||||
if model._meta.app_label in self.route_app_labels:
|
||||
return 'default'
|
||||
return None
|
||||
|
||||
def db_for_write(self, model, **hints):
|
||||
"""
|
||||
Attempts to write auth and contenttypes models go to django.
|
||||
"""
|
||||
if model._meta.app_label in self.route_app_labels:
|
||||
return 'default'
|
||||
return 'calibre'
|
||||
return None
|
||||
|
||||
def allow_relation(self, obj1, obj2, **hints):
|
||||
@ -35,42 +58,19 @@ class DjangoRouter:
|
||||
return True
|
||||
return None
|
||||
|
||||
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
||||
"""
|
||||
Make sure the auth and contenttypes apps only appear in the
|
||||
'django' database.
|
||||
"""
|
||||
if app_label in self.route_app_labels:
|
||||
return db == 'default'
|
||||
return None
|
||||
|
||||
|
||||
|
||||
class CalibreRouter:
|
||||
"""
|
||||
A router to control all database operations on models in the
|
||||
auth and contenttypes applications.
|
||||
"""
|
||||
def db_for_read(self, model, **hints):
|
||||
"""
|
||||
Attempts to read anything else goes to calibre
|
||||
"""
|
||||
return 'calibre'
|
||||
|
||||
# def db_for_write(self, model, **hints): # might be prudent not to allow writes
|
||||
# def allow_migrate(self, db, app_label, model_name=None, **hints):
|
||||
# """
|
||||
# Attempts to write auth and contenttypes models go to 'calibre'.
|
||||
# Make sure the auth and contenttypes apps only appear in the
|
||||
# 'django' database.
|
||||
# """
|
||||
# return 'calibre'
|
||||
# if app_label in self.route_app_labels:
|
||||
# return db == 'default'
|
||||
# return None
|
||||
|
||||
def allow_relation(self, obj1, obj2, **hints):
|
||||
"""
|
||||
Allow relations.
|
||||
"""
|
||||
return True
|
||||
|
||||
# def allow_migrate(self, db, app_label, model_name=None, **hints): # might be prudent not to allow migrations
|
||||
# def db_for_write(self, model, **hints):
|
||||
# """
|
||||
# Yes
|
||||
# Attempts to write auth and contenttypes models go to django.
|
||||
# """
|
||||
# return True
|
||||
# if model._meta.app_label in self.route_app_labels:
|
||||
# return 'default'
|
||||
# return None
|
||||
|
@ -1 +1,5 @@
|
||||
django==3.0.8
|
||||
django>=3.0.8
|
||||
# development
|
||||
django-debug-toolbar>=2.2
|
||||
django-silk>=4.0
|
||||
locust>=1.1
|
Loading…
Reference in New Issue
Block a user