11

我有一个包含 1000 个表的模式,其中很多我不需要,我怎样才能只检查我需要的表?

4

5 回答 5

20

您可以生成单个表的模型,运行此命令

python manage.py inspectdb TableName > output.py

如果您想生成视图模型,这也适用

于 2017-03-02T04:19:42.077 回答
9

您可以在 python 控制台或 *.py 文件中执行此操作:

from django.core.management.commands.inspectdb import Command
from django.conf import settings
from your_project_dir.settings import DATABASES  #  replace `your_project_dir`

settings.configure()
settings.DATABASES = DATABASES

Command().execute(table_name_filter=lambda table_name: table_name in ('table_what_you_need_1', 'table_what_you_need_2', ), database='default')

https://github.com/django/django/blob/master/django/core/management/commands/inspectdb.py#L32

于 2014-11-28T00:42:08.937 回答
4

您可以在 Django 2.2 或更高版本中通过以下命令执行此操作

python manage.py inspectdb --database=[dbname] [table_name] > output.py
于 2020-08-31T11:09:56.967 回答
1

您可以通过以下方式获得所需表格的模型:

python manage.py inspectdb table1 table2 tableN > output.py

这样您就可以只选择您想要的表格。

于 2020-12-10T07:30:53.833 回答
0

您可以生成模型的 python 代码并以编程方式写入控制台。

from django.core.management.commands.inspectdb import Command

command = Command()
command.execute(
    database='default',
    force_color=True,
    no_color=False,
    include_partitions=True,
    include_views=True,
    table=[
        'auth_group',
        'django_session'
    ]
)

设置table=[]空列表以获取所有表

于 2020-08-09T14:36:22.880 回答