Django框架中的models.py文件与数据库表存在对应关系,可以修改models文件后可以执行命令,更新数据库表结构,同样也可以通过执行命令,根据数据库表结构,更新models文件
Django框架中models.py和数据库之间的迁移操作
从models.py文件到数据库
将models文件中声明的class及其属性,在数据库中创建相应的表和字段与之对应。
首先,生成迁移文件。
#不指定应用名,工程下的所有应用都会生成迁移文件
python manage.py makemigrations
#指定应用名,只针对指定的应用生成迁移文件
python manage.py makemigrations appname
然后,将迁移文件,迁移至数据库。
#工程下所有迁移文件都被使用
python manage.py migrate
#使用指定应用下的迁移文件
python manage.py migrate appname
从数据库到models.py
- 不指定应用
python manage.py inspectdb
- 迁移到指定应用下的models.py文件中
python manage.py inspectdb > appname/models.py
注意事项
- 在首次执行迁移命令时,数据库中会创建名为
django_migrations
的表,如果在数据库中手动修改了迁移生成的数据库表,再次执行迁移命令,不会再重新创建出表。这时,需要删除或者truncate 表django_migrations
,重新执行迁移命令即可。