# add counter app
This commit is contained in:
parent
9d66545550
commit
dc4acd0850
|
@ -0,0 +1,3 @@
|
|||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
|
@ -0,0 +1,5 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class CounterConfig(AppConfig):
|
||||
name = 'counter'
|
|
@ -0,0 +1 @@
|
|||
from django.db import models
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
|
@ -0,0 +1,60 @@
|
|||
from django.conf import settings
|
||||
|
||||
DATABASE_MAPPING = settings.DATABASE_APPS_MAPPING
|
||||
|
||||
|
||||
class DatabaseAppsRouter(object):
|
||||
"""
|
||||
A router to control all database operations on models for different
|
||||
databases.
|
||||
|
||||
In case an app is not set in settings.DATABASE_APPS_MAPPING, the router
|
||||
will fallback to the `default` database.
|
||||
|
||||
Settings example:
|
||||
|
||||
DATABASE_APPS_MAPPING = {'counter': 'counter'}
|
||||
"""
|
||||
|
||||
def db_for_read(self, model, **hints):
|
||||
""""Point all read operations to the specific database."""
|
||||
if model._meta.app_label in DATABASE_MAPPING:
|
||||
return DATABASE_MAPPING[model._meta.app_label]
|
||||
return None
|
||||
|
||||
def db_for_write(self, model, **hints):
|
||||
"""Point all write operations to the specific database."""
|
||||
if model._meta.app_label in DATABASE_MAPPING:
|
||||
return DATABASE_MAPPING[model._meta.app_label]
|
||||
return None
|
||||
|
||||
def allow_relation(self, obj1, obj2, **hints):
|
||||
"""Allow any relation between apps that use the same database."""
|
||||
db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label)
|
||||
db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label)
|
||||
if db_obj1 and db_obj2:
|
||||
if db_obj1 == db_obj2:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
return None
|
||||
|
||||
def allow_syncdb(self, db, model):
|
||||
"""Make sure that apps only appear in the related database."""
|
||||
|
||||
if db in DATABASE_MAPPING.values():
|
||||
return DATABASE_MAPPING.get(model._meta.app_label) == db
|
||||
elif model._meta.app_label in DATABASE_MAPPING:
|
||||
return False
|
||||
return None
|
||||
|
||||
def allow_migrate(self, db, app_label, model=None, **hints):
|
||||
"""
|
||||
Make sure the auth app only appears in the 'auth_db'
|
||||
database.
|
||||
"""
|
||||
if db in DATABASE_MAPPING.values():
|
||||
return DATABASE_MAPPING.get(app_label) == db
|
||||
elif app_label in DATABASE_MAPPING:
|
||||
return False
|
||||
return None
|
|
@ -97,9 +97,20 @@ DATABASES = {
|
|||
'PASSWORD': 'Q5BkPk62mqeBxI_lHh2',
|
||||
'HOST': '47.106.73.20',
|
||||
'PORT': 3326
|
||||
},
|
||||
'counter': {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': 'counter',
|
||||
'USER': 'mosq_admin',
|
||||
'PASSWORD': 'Q5BkPk62mqeBxI_lHh2',
|
||||
'HOST': '47.106.73.20',
|
||||
'PORT': 3306
|
||||
}
|
||||
}
|
||||
|
||||
DATABASE_APPS_MAPPING = {
|
||||
'counter': 'counter'
|
||||
}
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
|
||||
|
|
Loading…
Reference in New Issue