2013-06-11 2 views
2

В моем проекте используется несколько баз данных для управления Auth, информацией о типе контента и Project App.Отключить обновление content_types при запуске Django ./manage.py syncdb

Мои базы данных Настройки:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'test_default', 
     'USER': 'root', 
     'PASSWORD': 'root', 
     'PORT': '', 
    }, 
    'auth_db': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'test_auth_db', 
     'USER': 'root', 
     'PASSWORD': 'root', 
     'HOST': '', 
     'PORT': '', 
    } 

У меня есть маршрутизатор для управления для чтения и записи

def db_for_read(self, model, **hints): 
    if model._meta.app_label == "auth" or model._meta.app_label == "sessions" or model._meta.app_label == "contenttypes": 
     return "auth_db" 
    return None 

def db_for_write(self, model, **hints): 
    if model._meta.app_label == "auth" or model._meta.app_label == "sessions" or model._meta.app_label == "contenttypes": 
     return "auth_db" 
    return None 

def allow_syncdb(self, db, model): 

    return True 

Когда бы я делать SyncDB все типы контента приложения будут обновлены в «auth_db». Я хочу остановить это и синхронизировать с базой данных по умолчанию. Чтобы вся таблица создавала и обновлялась только в БД по умолчанию.

При запуске проекта он будет использовать чтение и запись на основе конфигурации маршрутизатора.

Как я могу это сделать?

ответ

1

I Fixed его Обновление funcfion записи

def db_for_write(self, model, **hints): 
    if model._meta.app_label in ("sessions",) : 
     return "auth_db" 
    return "default" 

Так SyncDB не будет записывать какие-либо данные в "AUTH" и "ContentTypes"