在Django Shell中,如何连接到其他数据库?
就像是:
python manage.py shell --database=slave
我尝试了四处搜寻,但找不到任何有用的方法。
这是我的设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '10.10.10.10',
'PORT': '',
'CONN_MAX_AGE': 1000,
},
'slave':{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db2',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '10.10.10.10',
'PORT': '',
'CONN_MAX_AGE': 1000,
},
}
您可以将设置模块拆分为子模块。例如:
project/
settings/
__init__.py
base.py
dev.py
prod.py
shell.py
您的主要/常用设置位于 project/settings/base.py
在开发中,将DJANGO_SETTINGS_MODULE
环境变量设置为project.settings.dev
。
project/settings/dev.py
可能看起来像:
from .base import *
DEBUG = True
project/settings/shell.py
可能看起来像:
from .dev import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db2',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '10.10.10.10',
'PORT': '',
'CONN_MAX_AGE': 1000,
},
}
# OR
#
# DATABASES['master'] = DATABASES['default']
# DATABASES['default'] = DATABASES['slave']
然后运行python manage.py shell --settings=project.settings.shell
。
或者,或者,仅创建第二个设置模块:
project/
settings.py
shell_settings.py
project/shell_settings.py
看起来像:
from .settings import *
DATABASES['master'] = DATABASES['default']
DATABASES['default'] = DATABASES['slave']
并运行 python manage.py shell --settings=project.shell_settings
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句