猿问

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

我有一个包含大约 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 文件中?


一只斗牛犬
浏览 99回答 2
2回答

墨色风雨

我假设您使用的是 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

慕森卡

不要使用 django-admin inspectdb,因为 django 不会“知道”您正在使用的设置。只需使用python manage.py inspectdb yourtable
随时随地看视频慕课网APP

相关分类

Python
我要回答