Django:如何在inspectdb中使用多个数据库?

20

我的设置文件中的数据库部分是这样的:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'C:/Users/Desktop/test.db'
    },
    'blah':{
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'C:/Users/Desktop/test2.db'
    }
}

当我运行命令 python manage.py inspectdb > models.py 时,我只得到了为默认数据库生成的模型,而没有生成第二个数据库的模型。我该如何获取生成两个模型?

3个回答

35

根据文档:

--database DATABASE

用于指定introspect的数据库,默认为default

因此,您可以使用以下命令来检查第二个数据库:

python manage.py inspectdb --database blah

您不能同时检查两者。


当我尝试这个时,我收到了一个错误:“连接'blah'不存在”。在此之前我需要做些什么吗?我所在的目录是否有关系? - TheEyesHaveIt
如果数据库文件不存在会发生什么?请检查'C:/Users/Desktop/test2.db'是否真正存在? - solarissmoke

11
你可以像这样指定特定的数据库:

你可以像这样指定特定的数据库:

python manage.py inspectdb --database=blah > you_app/models.py

3
如果您正在尝试 @solarissmoke's answer 适用于 Django 2.*:
不要用引号包裹数据库名称,否则会导致KeyErrorConnectionDoesnotExist错误。
python manage.py inspectdb --database blah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接