![](/img/trans.png)
[英]How can I make command line argument values get assigned to selection of 2 variables in python?
[英]How can I make Django choose a specific default database when it starts up with command line argument
我希望Django在启动时给出的自变量默认使用特定的数据库( sqlite
),而不管settings.py.
如何settings.py.
为此,我在manage.py
添加了以下代码,以便可以在启动时使用参数settings.DATABASES
。
# manage.py
from myapp import settings
settings.DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(settings.DB_PATH, sys.argv[3]),
},
}
但是它不起作用。...Django仍然访问settings.py
表示的原始数据库
我认为这是因为Django在更改manage.py
settings.DATABASES之前已经设置了默认数据库。
因此,更改没有任何效果。
Django何时选择带有设置的默认数据库? 如果我可以在Django选择默认数据库之前更改settings.DATABASES,我会工作。
有什么办法可以在运行时更改默认数据库吗? 这样,即使Django选择已经是默认数据库的我也可以更改它。
这并不意味着要使用`model.objects.using('dbname')动态更改数据库。
./manage.py migrate --database=default
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.