📌  相关文章
📜  Django App Model – Python manage.py makemigrations 命令

📅  最后修改于: 2022-05-13 01:55:39.782000             🧑  作者: Mango

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
);

并且使用上面的命令,当我们使用迁移时,将在数据库中创建表。