在Django中,`python manage.py makemigrations`和`python manage.py migrate`是两个用于数据库迁移的命令,它们的主要区别在于:
- `python manage.py makemigrations`:这个命令主要是记录我们对`models.py`的所有改动,并且将这个改动迁移到`migrations`这个文件下生成一个文件,例如:`0001`文件。但是这个命令并没有作用到数据库¹。
- `python manage.py migrate`:这个命令的主要作用就是把这些改动作用到数据库,也就是执行`migrations`里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性¹。
这两个命令默认情况下是作用于全局,也就是对所有最新更改的`models`或者`migrations`下面的迁移文件进行对应的操作。如果要想仅仅对部分app进行作用的话,则可以执行如下命令:`python manage.py makemigrations appname`,`python manage.py migrate appname`。如果要想精确到某一个迁移文件则可以使用:`python manage.py migrate appname 文件名`¹。
简单来说,`makemigrations`用于生成迁移文件,`migrate`用于将迁移文件应用到数据库中³。这两个命令在Django的开发过程中非常重要,它们帮助我们管理和控制数据库的变化。在我们修改了模型(`models.py`)后,我们需要运行`makemigrations`来创建迁移文件,然后运行`migrate`来将这些改动应用到数据库中¹。
源: 与必应的对话, 2024/1/9
(1) 理解python manage.py makemigrations 和 python manage.py migrate - CSDN博客. https://blog.csdn.net/qq_27442175/article/details/123952724.
(2) 迁移 | Django 文档 | Django. https://docs.djangoproject.com/zh-hans/4.2/topics/migrations/.
(3) [Django教學3]Django Migration(資料遷移)的重要觀念 - Learn Code With Mike. https://www.learncodewithmike.com/2020/03/django-model-migration.html.
(4) python manage.py makemigrations 和 python manage.py migrate的区别 - CSDN博客. https://blog.csdn.net/wuyepiaoxue789/article/details/112365478.
(5) undefined. https://blog.csdn.net/hpu_yly_bj/article/details/78928089.
标签:py,makemigrations,python,manage,Django,migrate From: https://blog.51cto.com/u_16055028/9163199