【无标题】

<div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
                <div id="content_views" class="htmledit_views">
                    <p>本文转载:<a class="has-card" href="https://blog.csdn.net/hpu_yly_bj/article/details/78928089" title="【Django2.0】python manage.py makemigrations 和 python manage.py migrate的区别_lotusgrm的博客-CSDN博客_django manage.py migrate"><span class="link-card-box"><span class="link-title">【Django2.0】python manage.py makemigrations 和 python manage.py migrate的区别_lotusgrm的博客-CSDN博客_django manage.py migrate</span><span class="link-desc">无论当我们第一次在models.py中创建类对象还是对类中的属性进行修改,我们都会使用python manage.py makemigrations 和 python manage.py migrate 两个命令,单纯从这两这个命令来看的话其实仅仅只是后面makemigrations和migrate的区别&nbsp; 在models中第一次创建models类,如图所示:&nbsp;&nbsp;&nbsp; 下面使用pytho</span><span class="link-link"><img alt="" class="link-link-icon" src="https://g.csdnimg.cn/static/logo/favicon32.ico">https://blog.csdn.net/hpu_yly_bj/article/details/78928089</span></span></a></p> 
<p>当我们第一次在models.py中创建类对象还是对类中的属性进行修改,我们都会使用python manage.py makemigrations 和 python manage.py migrate 两个命令</p> 
<p>&nbsp; 在models中第一次创建models类,如图所示:</p> 
<p>&nbsp;&nbsp;<img alt="" src="https://img-blog.csdn.net/20171229093038063"></p> 
<p></p> 
<p>&nbsp; 下面使用python manage.py makemigrations 命令:</p> 
<p>&nbsp; &nbsp;<img alt="" src="https://img-blog.csdn.net/20171229093300336"></p> 
<p>&nbsp;红线框中表示在blog应用目录下的migations的文件下多了一个001的文件,我们来看看这个文件中的具体内容是什么:</p> 
<p><img alt="" src="https://img-blog.csdn.net/20171229093500678"></p> 
<p>&nbsp;这个文件里面的内容表示我们创建了一个Employee这个模型类,并且指出这个类的成员属性id,name,以及他们的属性,我们知道<span style="color:#ff9900;">在models.py创建模型类,其中一个模型类对应的是一张数据表</span>,来看看执行了刚刚的那条命令止之后数据库中有没有发生什么变化,我们想要的数据表是不是已经创建好了,如下图所示:</p> 
<p><img alt="" src="https://img-blog.csdn.net/20171229094038173"></p> 
<p>&nbsp;</p> 
<p>可以看到数据库里面并没有我们想要创建的数据表,那刚刚那条命令具体执行了什么语句,我们可以使用python manage.py sqlmugrate appname 文件名 进行查看:</p> 
<p><img alt="" src="https://img-blog.csdn.net/20171229094446585"></p> 
<p>&nbsp;</p> 
<p>和0001文件中的内容是一致的,下面开始执行python manage.py migrate,如下图:</p> 
<p><img alt="" src="https://img-blog.csdn.net/20171229094809327"></p> 
<p>&nbsp;</p> 
<p>下面再看一下数据库:</p> 
<p><img alt="" src="https://img-blog.csdn.net/20171229094918383"></p> 
<p>&nbsp;</p> 
<p>我们发下执行完指一条命令之后,我们所想要创建的数据表出现了,对应的字段也出现了</p> 
<p>&nbsp; &nbsp;到这里我们差不多就知道了,<span style="color:#ff9900;">python manage.py makemigrations这个命令是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件。</span>例如:0001文件,如果你接下来还要进行改动的话可能生成就是另外一个文件不一定都是0001文件,<span style="color:#ff9900;">但是这个命令并没有作用到数据库</span>,这个刚刚我们在上面的操作过程之后已经看到了。</p> 
<p><span style="color:#ff9900;">而当我们执行python manage.py migrate 命令时 &nbsp;这条命令的主要作用就是把这些改动作用到数据库也就是执行migrations里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性</span></p> 
<p>&nbsp; &nbsp;另外一个需要注意的是这两个命令默认情况下是作用于全局,也就是对所有最新更改的models或者migrations下面的迁移文件进行对应的操作,如果要想仅仅对部分app进行作用的话 &nbsp;则执行如下命令:</p> 
<p>python manage.py makemigrations appname,</p> 
<p>python manage.py migrate appname,</p> 
<p>如果要想精确到某一个迁移文件则可以使用:</p> 
<p>python manage.py migrate appname 文件名<br> ————————————————<br> 版权声明:本文为CSDN博主「lotusgrm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。<br> 原文链接:https://blog.csdn.net/hpu_yly_bj/article/details/78928089</p>
                </div><div><div></div></div>
        </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值