【问题标题】:Django: using more than one database with inspectdb?Django:在inspectdb 中使用多个数据库?
【发布时间】:2016-10-01 14:27:01
【问题描述】:

我的设置文件的数据库部分如下所示:

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 时,我只得到为默认数据库生成的模型,而不是第二个。如何生成两个模型?

【问题讨论】:

    标签: python django sqlite inspectdb


    【解决方案1】:

    来自documentation

    --database DATABASE

    指定要自省的数据库。默认为default

    所以你可以检查你的第二个数据库:

    python manage.py inspectdb --database blah
    

    您不能同时检查两者。

    【讨论】:

    • 当我尝试这个时,我收到了一个错误,Connection 'blah' doesn't exist。在此之前我需要做些什么吗?我所在的目录重要吗?
    • 如果数据库文件不存在,就会发生这种情况。检查'C:/Users/Desktop/test2.db' 是否真的存在?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您正在为 Django 2.* 尝试 @solarissmoke's answer

      不要将数据库名称用引号括起来,否则会出现KeyErrorConnectionDoesnotExist 错误。

      python manage.py inspectdb --database blah
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-30
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-31
        • 2016-03-22
        • 1970-01-01
        相关资源
        最近更新 更多