Django App Model – Python manage.py makemigrations 命令
根据文档,迁移是 Django 将您对模型所做的更改(添加字段、删除模型等)传播到数据库模式中的方式。它们被设计为大部分是自动的,但您需要知道何时进行迁移、何时运行它们以及您可能遇到的常见问题。
makemigrations通过以下命令运行
Python manage.py makemigrations
如果上述命令显示未检测到更改,您也可以为单个应用程序执行此操作。
例如,如果您有 10 个名为 a、b、c、d、e、f、g、h、i、j 的应用程序。您可以为这些应用单独运行 makemigrations。
Python manage.py makemigrations a
Python manage.py makemigrations b
Python manage.py makemigrations c
等等。
Django 应用模型迁移
makemigrations基本上为预安装的应用程序(可以在 settings.py 中的已安装应用程序中查看)和您在已安装应用程序中添加的新创建的应用程序模型生成 SQL 命令。它不会在您的数据库文件中执行这些命令。因此在 makemigrations 之后不会创建表。
应用 makemigrations 后,您可以使用 sqlmigrate 查看那些 SQL 命令,其中显示了 makemigrations 生成的所有 SQL 命令。
例如,如果我们创建一个模型类-
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length = 30)
last_name = models.CharField(max_length = 30)
使用makemigrations后对应的sql命令为
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
并且使用上面的命令,当我们使用迁移时,将在数据库中创建表。