繁体   English   中英

使用命令行参数启动时,如何使Django选择特定的默认数据库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM