在Django中编写好models.py文件后,根据所创建的模型类,我们需要对此定义数据库表。Django配置了迁移系统,跟踪模型产生的变化内容,并将其传送至数据库中。相应的,migrate命令可针对 INSTALLED_APPS 列出的全部应用程序执行迁移操作并同步对应的数据库(其中包含了当前模型和现有的迁移内容)。
首先需要针对我们的模型创建初始迁移。在项目的根目录中,可运行下列命令(makemigrations最好后面跟个应用名,不跟也没关系):
python manage.py makemigrations
对应的输出结果为(##为你的应用名):
Migrations for '##':
##/migrations/0001_initial.py
-Create model ##
Django在你的应用程序的 migrations 目录内仅生成了0001_initial.py文件,我们可以打开该文件查看迁移结果。迁移指定了在数据库中执行的其他迁移和操作的依赖关系,以便于模型变化同步。
接下来将数据库与新模型同步。运行以下命令来应用现有迁移:
python manage.py migrate
对应输出的结果如下所示(##为你的应用名):
Applying ##.0001_initial... OK
我们只是为INSTALLED_APPS中列出的应用程序使用了迁移,包括我们的##应用程序。在应用迁移之后,数据库反映了模型的当前状态。
当编辑models.py文件,以添加、移除或修改现有模型的字段时,或者添加新的方法时,则需要利用makemigrations命令创建新的迁移。该迁移使得Django可跟踪模型的变化状态。随后,还需将其与migrate命令一起应用,以使数据库与模型保持同步。