我有一个包含大约 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
慕森卡
TA贡献1806条经验 获得超8个赞
不要使用 django-admin inspectdb,因为 django 不会“知道”您正在使用的设置。
只需使用python manage.py inspectdb yourtable
添加回答
举报
0/150
提交
取消