Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据库中创建新表时如何更新models.py?_Python_Django_Database_Django Models - Fatal编程技术网

Python 在数据库中创建新表时如何更新models.py?

Python 在数据库中创建新表时如何更新models.py?,python,django,database,django-models,Python,Django,Database,Django Models,我想知道如何在django的特定应用程序中自动更新我的models.py。我通过HeidySQL在数据库中创建了一个新表,当我syncdb时,我看到该表出现在命令行的目录中,但不在models.py中。我也尝试过迁移和进行迁移,但仍然不起作用 有什么想法吗?谢谢 manage.py migrate和makemigrations命令的工作方向与您在此处描述的方向相反。如果要根据数据库的当前布局生成模型的起始模板,可以尝试使用inspectdb命令 python manage.py inspectd

我想知道如何在django的特定应用程序中自动更新我的models.py。我通过HeidySQL在数据库中创建了一个新表,当我syncdb时,我看到该表出现在命令行的目录中,但不在models.py中。我也尝试过迁移和进行迁移,但仍然不起作用


有什么想法吗?谢谢

manage.py migrate和
makemigrations
命令的工作方向与您在此处描述的方向相反。如果要根据数据库的当前布局生成模型的起始模板,可以尝试使用
inspectdb
命令

python manage.py inspectdb > temp_models.py
这将为数据库中的每个表生成一个起始模型。你应该检查和更新生成的模型,使它们在你的应用程序中有意义。请特别注意以注释结尾的行。#此字段类型是猜测。

一旦您对新模型感到满意,请将它们复制到应用程序的models.py文件中


希望有帮助

你为什么那样做?您应该创建一个新的模型,然后使用迁移来创建相应的数据库表。好吧,使用像HeidySQLI这样的接口更舒服。我认为这里的主要问题是您不能“直接”将SQL表转换为模型,因为数据库允许添加所有类型的内容,为此,很难构建Django模型。例如,如果一个列对多个表有两个或多个外键约束,该怎么办?这意味着这是某种同时分离模型的
ForeignKey
。可以说“Django模型”比SQL表更丰富,因为信息在迁移过程中“丢失”。但在我第一次同步它们时,它创建了一个自动models.py,其中包含所有表、SK、FK及其所有内容,现在不可能这样做吗?@DanielRoseman我试图在models.py中手动键入它,运行makemigrations和migrate,但现在它没有在我的数据库中更新(我在heydisql中看不到来自模型的新表)