为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只斗牛犬 2022-07-26 17:06:02
我有一个包含大约 25 个表的数据库,我想为我的 python 项目自动生成模型文件。为了开发项目,我使用 PyCharm 和 MariaDB 作为 RDMS。数据库的基本设置已经完成。在下一步中,我切换到 manage.py 控制台以运行第一个命令:inspectdb这工作正常。每个表都将在控制台窗口的输出中列出。现在我想将输出写入文件。因此我使用以下命令:inspectdb > models.py这最终导致错误:Unable to inspect table '>'# The error was: (1146, "Table 'mydatabase.>' doesn't exist")# Unable to inspect table 'models.py'# The error was: (1146, "Table 'mydatabase.models.py' doesn't exist")Process finished with exit code 0该命令根据文档“python manage.py inspectdb > model.py”。但在这种情况下,'>' 符号将被解释为表,或者必须给出表名。在第二种情况下,我尝试只导出一个表:inspectdb users > models.py最终得到以下输出:class Users(models.Model):    name = models.CharField(max_length=400)    username = models.CharField(max_length=150)    email = models.CharField(max_length=100)    password = models.CharField(max_length=100)    .....    class Meta:        managed = False        db_table = 'users'# Unable to inspect table '>'# The error was: (1146, "Table 'mydatabase.>' doesn't exist")# Unable to inspect table 'models.py'# The error was: (1146, "Table 'mydatabase.models.py' doesn't exist")Process finished with exit code 0这里同样的问题!在这种情况下,会生成模型用户,但不会将其写入 models.py 文件。我该怎么做才能将生成的模型保存到我的 models.py 文件中?
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

我假设您使用的是 bash shell。如果没有,那可能是你的问题。您需要使用相对路径才能models.py使其正常工作。如果您的目录结构如下所示:

mysite/
    manage.py
    mysite/
    myapp/
        __init__.py
        admin.py
        migrations/
        models.py

并且您正在从根mysite目录(manage.py找到相同的目录)运行命令,那么您应该像这样运行命令:

python manage.py inspectdb users > myapp/models.py


查看完整回答
反对 回复 2022-07-26
?
慕森卡

TA贡献1806条经验 获得超8个赞

不要使用 django-admin inspectdb,因为 django 不会“知道”您正在使用的设置。

只需使用python manage.py inspectdb yourtable


查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信