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

  • 相关阅读:
    hdu 1088 HTML解析
    hdu1171 转化01背包,组合
    Java编程优化之旅(一)一般化方法
    Java简单实现Socket非阻塞通信
    Maven安装,以及导入Intellij IDEA
    笔记本的使用技巧
    Intellij IDEA使用小技巧
    学习Spring有关知识
    学习安装IntelliJ IDEA
    C#后台调用js方法无效果,未解决。
  • 原文地址:https://www.cnblogs.com/chenpengzi/p/11359423.html
Copyright © 2011-2022 走看看