I have installed app named registration-redux
, and I would like to store user data (and some other minor things) in a sqlite database called default
. However, the data structures get added automatically to other databases, which is redundant.
Normally, I go to models.py and put in a desired model a label:
class some_model(models.Model):
name = models.CharField(max_length=20, primary_key=True)
class Meta:
app_label = 'default'
And in settings.py I select which models go to which database:
DATABASE_APPS_MAPPING = {'market_data': 'market_data',
'registration': 'default'} # this doesn't work
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'market_data': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'market_data.sqlite3'),
}
}
Now, when I migrate market_data
database, redundant structures like auth_user
, auth_group
, etc. get added. How can I omit them?
答案 0 :(得分:0)
对于Django 1.7
创建文件 routers.py ,并在此文件中写:
class Market_data_router(object):
def allow_migrate(self, db, model):
if db == 'market_data':
if model.__name__ != 'Market_data':
return False
return None
在 settings.py 中写道:
DATABASE_ROUTERS = ['routers.Market_data_router']
最后,创建,清除“数据库:
./manage.py migrate --database=market_data