zoukankan      html  css  js  c++  java
  • makemigrations和migrate到底干了什么以及如何查询原生的sql语句

    在你改动了 model.py的内容之后执行下面的命令:

    python manger.py makemigrations

    相当于 在该app下的 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件

    可以在项目的migrations目录手动打开这个文件,看看里面是什么

    在此之后执行命令

    python manager.py migrate

    将该改动作用到数据库文件,比如产生table之类

    D:PycharmProjectsDemoDjango>python manage.py makemigrations   
    Migrations for 'webAppOne':
      webAppOnemigrations002_companyinfo.py  #  在migrations目录,并记录下你所有的关于modes.py的改动,没有作用到数据库
        - Create model CompanyInfo
    
    D:PycharmProjectsDemoDjango>python manage.py migrate  # 作用到数据库,创建表
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions, webAppOne
    Running migrations:
      Applying webAppOne.0002_companyinfo... OK
    
    D:PycharmProjectsDemoDjango>

    当makemigrations之后会在项目的migrations目录产生了0001_initial.py 文件,可以查看下该migrations会对应的SQL命令

    python manage.py sqlmigrate webAppOne  0001

    D:PycharmProjectsDemoDjango>python manage.py sqlmigrate webAppOne 0001
    BEGIN;
    --
    -- Create model Userinfo
    --
    CREATE TABLE "webAppOne_userinfo" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "username" varchar(32) NOT NULL, "password" varchar(32) NOT NULL, "salary" integer NOT NULL
    );
    COMMIT;
    
    D:PycharmProjectsDemoDjango>

    表名组成结构为:应用名_类名(如:webAppOne_userinfo)。

    注意:尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。

  • 相关阅读:
    如何选择合适的MySQL存储引擎
    如何提高Windows操作系统内存利用效率
    jQuery插件 面包屑导航
    [Fireworks+Dreamweaver制作网站]第7课上
    一次完整的安全渗透测试
    jquery插件 跟随屏幕滚动的层
    [Fireworks+Dreamweaver制作网站]第1课
    [Fireworks+Dreamweaver制作网站]第2课
    随笔 幸福
    jQuery插件 jqueryflexselect下拉框自动提示
  • 原文地址:https://www.cnblogs.com/chenpengzi/p/11359423.html
Copyright © 2011-2022 走看看