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作为主键。

  • 相关阅读:
    微信读书分享组队群
    骚操作!利用百度首页换肤的图片上传 API 做图床
    application/json和application/x-www-form-urlencoded使用选择
    通过类名或者jar名查询所在jar包
    sql中with as测试实例
    BeanUtils.copyProperties的简单示例
    jquery.validate.js的简单示例
    springboot restful接口服务异常处理
    怎样判断某个窗口是否打开
    怎样理解window.name
  • 原文地址:https://www.cnblogs.com/chenpengzi/p/11359423.html
Copyright © 2011-2022 走看看