问题标签 [inspectdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
181 浏览

django - KeyError:在 Django 中运行 inspectdb 时出现“force_color”错误

我正在尝试在 Django 中排除某些表来执行检查命令我发现了这个问题:How do I inspectdb 1 table from database which contains 1000 tables similar to mine 但问题是当我运行相同的代码时我得到一个奇怪的错误 script.py

错误:

0 投票
1 回答
201 浏览

django - 为 POSTGIS DB 运行 inspectdb 后,python manage.py runserver 给出错误(Django-2.2)

运行: python manage.py inspectdb --database=geoserver > map/models.py
之后: python manage.py runserver给出以下错误:

在线程 Thread-1 中使用 StatReloader Exception 监视文件更改:

回溯(最近一次通话最后):

注意:如果您遇到同样的问题,请尝试我在答案部分给出的方法,它也可能对您有用。

0 投票
2 回答
1475 浏览

python - Django:无法检查数据库表到文件

我有一个包含大约 25 个表的数据库,我想为我的 python 项目自动生成模型文件。为了开发项目,我使用 PyCharm 和 MariaDB 作为 RDMS。

数据库的基本设置已经完成。在下一步中,我切换到 manage.py 控制台以运行第一个命令:

这工作正常。每个表都将在控制台窗口的输出中列出。现在我想将输出写入文件。因此我使用以下命令:

这最终导致错误:

该命令根据文档“python manage.py inspectdb > model.py”。但在这种情况下,'>' 符号将被解释为表,或者必须给出表名。

在第二种情况下,我尝试只导出一个表:

最终得到以下输出:

这里同样的问题!在这种情况下,会生成模型用户,但不会将其写入 models.py 文件。我该怎么做才能将生成的模型保存到我的 models.py 文件中?

0 投票
1 回答
307 浏览

django - Django inspectdb 不尊重两列的主键(postgres)

我正在使用 Django 连接到现有的 Postgres 数据库,使用 inspectdb 生成我的 models.py 文件。Postgres 中的表是这样创建的:

然后我运行python manage.py inspectdb --database primary > models_test.py,结果如下models_test.py

请注意在 上定义的 OneToOneField aid

如果我改为将表 b 创建为:

然后重新运行 inspectdb 我得到以下输出:

注意 OneToOneField 现在是 on cid。我怀疑这是一个错误,但我没有经验,所以想在报告之前在这里问一下。第二个问题:如果这是一个错误,是否值得报告?也许数据库设计很差或不常见?

0 投票
1 回答
178 浏览

python - Django 遗留数据库 inspectdb 从字段名称中删除“_id”后缀

我在 django 中为旧数据库使用 inspectdb 时遇到问题。我相信我的问题本质上与这里描述的相反:

带有_id的Django后缀ForeignKey字段

我的数据库中的许多字段名称以“_id”结尾。在运行 inspectdb 时,那些以“_id”结尾并且也是 ForeignKeys 或 OneToOneFields 的字段将删除“_id”:

我可以通过将上述行更改为此来解决此问题:

问题是,每次为该数据库和其他数据库生成模型文件时,都需要手动更改数百个。我可以想出一个脚本来纠正这些问题,但我想有一些解决方法。

谢谢

0 投票
0 回答
142 浏览

mysql - “utf-8”编解码器无法解码位置 3 中的字节 0xe6:无效的继续字节

我正在编写 Django React 应用程序,并且我有一个庞大的现有数据库。我使用“inspectdb”命令创建了模型...

我的数据库有点旧,而且里面充满了克罗地亚语字符,因为它无法创建模型。

是否有任何代码行可以解决 Django 端这个字符集的完整问题?

0 投票
0 回答
589 浏览

django - django DB2 inspectdb 失败:'NoneType' 对象不可下标

我的开发环境位于 python 3.6 和 virtualenv(virtualenv 15.1.0) 中,并且具有以下依赖项:django 2.2 ibm-db 3.0.1 ibm-db-django 1.2.0.0

当我使用“(env_django2) λ python manage.py check”时,它返回“系统检查发现没有问题(0 静音)。” 这不是问题。

但是,当我使用“python manage.py inspectdb --database db2 DEMO.DEMOUSER”时,它返回如下:

这是我的 db2 设置:

我已经通过下面这样的编码对其进行了测试,这没有问题。

所以我的问题是如何使 inspectdb 工作?

我检查了inspectdb.py,我发现

func get_table_description 将包含以下代码:

看来我没有正确设置表和模式名称。

好吧,我要睡觉了,很累。

2020.3.13更新…………

所以当我阅读 ibm_db_django\introspection.py 中的代码时,我发现如下:

这意味着,ibm_db_django 将默认获取模式,这是您在 django 设置文件中设置的用户名。所以在我的例子中,它总是会设置像'db2inst1.DEMO.DEMOUSER'这样的表名。你不能自己改变架构。

据我所知,将模式设置为不可变是不合理的,因为模式和用户在 db2 中与 oracle 不同。每个人都可以使用授予的架构。

因此,我必须像这样更改代码,以便我可以正确设置我的架构:

所以问题已经解决了,但是,另一个出现了!当我输入命令“python manage.py inspectdb --database db2 DEMO.DEMOUSER”时,它显示如下:

检查inspectdb.py,我找到了答案。从 ibm_db_django 实现的 introspection.py 中的 func 返回的指定表的描述与 django 2.2 中的 inspectdb.py 不同。

所以用 django 发布历史和 ibm_db_ango 检查它。ibm_db_ango 1.2 于 2018.4.3 发布,django 2.2 于 2019.3 发布。

似乎 django 2.2 不支持 ibm_db_ango 1.2(最新版本)

因此我不得不安装 django 2.0。

终于成功了!!!

0 投票
0 回答
80 浏览

django - 我们如何将第三方数据库(特别是 MS Access)链接到 Django 以使用 inspectdb 实用程序?

我只想自动创建模型,还想使用 Django 的 inspectdb 实用程序对我的手动模型进行双重检查。但是,我想观察的数据库是 Microsoft Access,我不太清楚如何正确地做到这一点。有一个 django-pyodbc 但仅适用于 Django 1.4-1.10。关于将 Inspectdb 用于 Microsoft Access 数据库的任何想法?

0 投票
0 回答
355 浏览

python - Django DecimalField max_digits 和 decimal_places 未明确知道

我正在添加一个 Django 模型,其中有许多我想创建为 a 的字段DecimalField,但我不知道这些列中的每一个的max_digitsor 。decimal_places我正在使用 postgres 数据库;表结构来自 API 源并将由 API 源填充。

我能够为表获取 DDL,在空白的 postgres db 中创建表,并用于inspectdb创建 Django 模型。

结果为所有DecimalField列分配了:models.DecimalField(max_digits=65535, decimal_places=65535, blank=True, null=True)

该模型包含约 170 个DecimalField字段。关于我应该如何处理这些字段的创建有什么想法或建议吗?

0 投票
4 回答
1030 浏览

python - Django Inspectdb 在尝试检查表时出现 MSSql 错误

尝试检查 MsSql 数据库时出现此错误:

这是我使用的命令:

这是settings.py中的连接: