Django 3.0入门与实践
上QQ阅读APP看书,第一时间看更新

3.7 激活模型

前面提到所有已经启用的Django应用程序都会被记录在INSTALLED_APPS中,而migrate命令也需要去INSTALLED_APPS检索所有应用程序,所以为了将前面创建的模型写入数据库,还需要激活它,激活应用程序的方式就是把应用程序的配置文件加入INSTALLED_APPS中。

Polls项目的配置文件存放在polls/apps.py脚本中,默认的类名字是PollsConfig,因此对应的Python路径就是“polls.apps.PollsConfig”:

项目激活之后,执行以下命令生成数据库表:

    > python manage.py makemigrations polls

makemigrations命令会检测模型文件的修改,并且把修改的部分存储成一次迁移(migrate),这个迁移就是一个脚本文件,默认会保存在migrations文件夹下。这里不需要关心这些迁移文件具体做了什么,更不需要了解它是怎么做的,唯一要做的就是使用migrate命令将这些迁移应用到数据库中:

    > python manage.py migrate

这个migrate命令选中所有还没有执行过的迁移(Django通过在数据库中创建一个特殊的表django_migrations来跟踪执行过哪些迁移)并应用在数据库上,也就是将模型的更改同步到数据库结构上。

迁移命令非常强大,可以使不懂数据库开发的开发人员很轻松地操作数据库,后续内容会进一步介绍migrate命令。

提示

将数据库更新拆分成makemigrations和migrate两个命令可以方便地使用源代码管理工具管理数据库的变更记录。