Django学习教程(八)Django数据迁移migrations
前言
上一篇我们创建了博客文章模型Article,但是只是在models.py中定义了模型类,数据库中还没有真正生成表。
这一篇我们来学习Django中的数据迁移,通过迁移命令,把模型类同步到数据库中。
1.什么是数据迁移
数据迁移就是把models.py中的模型变化,同步到数据库中。
比如我们定义了Article模型,Django可以根据这个模型自动创建文章表。
Django中常用的迁移命令有两个:
python manage.py makemigrations
python manage.py migrate
2.生成迁移文件
在manage.py所在目录下执行命令:
python manage.py makemigrations
执行后,会在blog应用的migrations目录下生成迁移文件。
类似:
blog/migrations/0001_initial.py
这个文件记录了模型的变化。
3.执行迁移
生成迁移文件后,还需要执行迁移命令。
命令:
python manage.py migrate
执行完成后,Django会根据迁移文件创建数据库表。
4.默认数据库
Django默认使用SQLite数据库。
在项目根目录下,会生成一个文件:
db.sqlite3
这个文件就是Django默认的数据库文件。
5.迁移命令区别
makemigrations和migrate的区别:
- makemigrations:根据模型生成迁移文件
- migrate:根据迁移文件操作数据库
简单理解:
models.py -> makemigrations -> 迁移文件 -> migrate -> 数据库表
6.修改模型后怎么办
如果后面修改了models.py中的模型,比如新增字段,也需要重新执行:
python manage.py makemigrations
然后再执行:
python manage.py migrate
这样数据库结构才会更新。
7.总结
这一篇我们学习了Django中的数据迁移,主要掌握了makemigrations和migrate两个命令。
以后只要修改了模型类,就需要执行迁移命令,把模型变化同步到数据库。好了这一篇就到这里,下一篇我们继续学习Django Shell基本使用,如果对你有帮助,点赞加关注,下篇见。