【Django2.0】python manage.py makemigrations 和 python manage.py migrate的区别
无论当我们第一次在models.py中创建类对象还是对类中的属性进行修改,我们都会使用python manage.py makemigrations 和 python manage.py migrate 两个命令,单纯从这两这个命令来看的话其实仅仅只是后面makemigrations和migrate的区别
在models中第一次创建models类,如图所示:
下面使用python manage.py makemigrations 命令:
红线框中表示在blog应用目录下的migations的文件下多了一个001的文件,我们来看看这个文件中的具体内容是什么:
这个文件里面的内容表示我们创建了一个Employee这个模型类,并且指出这个类的成员属性id,name,以及他们的属性,我们知道在models.py创建模型类,其中一个模型类对应的是一张数据表,来看看执行了刚刚的那条命令止之后数据库中有没有发生什么变化,我们想要的数据表是不是已经创建好了,如下图所示:
可以看到数据库里面并没有我们想要创建的数据表,那刚刚那条命令具体执行了什么语句,我们可以使用python manage.py sqlmugrate appname 文件名 进行查看:
和0001文件中的内容是一致的,下面开始执行python manage.py migrate,如下图:
下面再看一下数据库:
我们发下执行完指一条命令之后,我们所想要创建的数据表出现了,对应的字段也出现了
到这里我们差不多就知道了,python manage.py makemigrations这个命令是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件例如:0001文件,如果你接下来还要进行改动的话可能生成就是另外一个文件不一定都是0001文件,但是这个命令并没有作用到数据库,这个刚刚我们在上面的操作过程之后已经看到了,而当我们执行python manage.py migrate 命令时 这条命令的主要作用就是把这些改动作用到数据库也就是执行migrations里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性
另外一个需要注意的是这两个命令默认情况下是作用于全局,也就是对所有最新更改的models或者migrations下面的迁移文件进行对应的操作,如果要想仅仅对部分app进行作用的话 则执行如下命令:
python manage.py makemigrations appname,
python manage.py migrate appname,
如果要想精确到某一个迁移文件则可以使用:
python manage.py migrate appname 文件名
---------------------
作者:leeyongbard
来源:CSDN
原文:https://blog.csdn.net/hpu_yly_bj/article/details/78928089
版权声明:本文为博主原创文章,转载请附上博文链接!
【Django2.0】python manage.py makemigrations 和 python manage.py migrate的区别的更多相关文章
- Django 中 python manage.py makemigrations 与 python manage.py migrate
执行 python manage.py makemigrations django根据settings.py里面的INSTALLED_APPS项设置找到对应app里的models.py,应用里面创建的 ...
- Django orm 中 python manage.py makemigrations 和 python manage.py migrate 这两条命令用途
生成一个临时文件 python manage.py makemigrations 这时其实是在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_ini ...
- python学习-- 数据库迁移 python manage.py makemigrations 和 python manage.py migrate
python manage.py makemigrations 和 python manage.py migrate
- python manage.py makemigrations生成数据变化的问题
今天遇到的生成数据库的问题django生成数据库的话,使用的是两条命令,一个是python manage.py makemigrations,以及python manage.py migrate在设计 ...
- Python3.6+Django2.0以上 xadmin站点的配置和使用
1. xadmin的介绍 django自带的admin站点虽然功能强大,但是界面不是很好看.而xadmin界面好看,功能更强大,并完全支持Bootstrap主题模板.xadmin内置了丰富的插件功能. ...
- 用 Django2.0 做 简单的BBS(前端用 Bootstrap)
实现目标: 开发首页显示BBS的标题和摘要,点击BBS的标题可跳转到BBS详细页面进行展示. 开发环境及开发工具: Python 3.6.3 Django 2.0 Pycharm 2017.3 实现过 ...
- Django :执行 python manage.py makemigrations 时报错 TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因 执行命令 python manage.py makemigrations 报错 TypeError: __init__() missing 1 required positional argum ...
- DjangoORM 执行 python manage.py makemigrations出现 no changes detected
出现 no changes detected python manage.py makemigrations No changes detected 为什么出现这种情况: 当执行这条命令,他会去找所有 ...
- 执行python manage.py makemigrations时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
在执行python manage.py makemigrations时报错: TypeError: __init__() missing 1 required positional argument: ...
随机推荐
- Spring Shell入门介绍
目录 Spring Shell是什么 入门实践 基础配置 简单示例 注解@ShellMethod 注解@ShellOption 自定义参数名称 设置参数默认值 为一个参数传递多个值 对布尔参数的特殊处 ...
- [LeetCode] 901. Online Stock Span 线上股票跨度
Write a class StockSpanner which collects daily price quotes for some stock, and returns the span of ...
- linux内存管理swap分区
一.什么是linux的内存机制? 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物 ...
- 浅谈 Docker 安全合规建设
通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...
- 2019年新加坡之行 Day 1
又到了公司每年一次的年度旅游,继前几年的香港.日本.韩国游后,今年公司选择了新加坡.由于之前曾在新加坡公司The Adventus Consultants工作过2年时间,所以对于这次重返新加坡,我还是 ...
- Java进阶——Java中的字符串常量池
转载. https://blog.csdn.net/qq_30379689/article/details/80518283 字符串常量池 JVM为了减少字符串对象的重复创建,其内部维护了一个特殊的内 ...
- CLRS10.1-6练习 - 用双栈实现队列
双栈实现队列算法: 分别考虑队列两种操作入队和出队,我们假设使用栈s1 s2, s1用来模拟入队,s2用来模拟出队 入队: 入队操作直接执行s1.push即可 出队: 代码实现 package hel ...
- ssm框架 pom的配置 / 还有里面springMVC.xml的配置 / webapp.xml的配置
首先是pom的配置: <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-jav ...
- Win8.1下Flash Builder 提示: 找不到所需的Adobe Flash Player调试器版本,解决办法
系统:Win8.1 x64 [解决]安装Flash DeBug最新版本补丁,注意下载对应系统的调试版本 下载地址:http://www.adobe.com/support/flashplayer/do ...
- java实现顺序表、链表、栈 (x)->{持续更新}
1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...