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

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

    python manger.py makemigrations

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

    你可以手动打开这个文件,看看里面是什么

    在此之后执行命令

    python manager.py migrate

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

    当makemigrations之后产生了0001_initial.py 文件,你可以查看下该migrations会对应于什么样子的SQL命令

    python manage.py sqlmigrate repository 0001

    大概是这个样子的:


    -- Create model Blog
    --
    CREATE TABLE `repository_blog` (`nid` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY, `title` varchar(64) NOT NULL, `site` varchar(32) NOT NULL UNIQUE, `theme` varchar(32
    ) NOT NULL);
    --
    -- Create model UserFans
    --
    CREATE TABLE `repository_userfans` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY);
    --
    -- Create model UserInfo
    --
    CREATE TABLE `repository_userinfo` (`nid` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY, `username` varchar(32) NOT NULL UNIQUE, `nickname` varchar(32) NOT NULL, `passwo
    rd` varchar(32) NOT NULL, `email` varchar(254) NOT NULL UNIQUE, `avatar` varchar(100) NOT NULL, `create_time` datetime(6) NOT NULL);
    --
    -- Add field follower to userfans
    --
    ALTER TABLE `repository_userfans` ADD COLUMN `follower_id` bigint NOT NULL;
    --
    -- Add field user to userfans
    --
    ALTER TABLE `repository_userfans` ADD COLUMN `user_id` bigint NOT NULL;
    --
    -- Add field user to blog
    --
    ALTER TABLE `repository_blog` ADD COLUMN `user_id` bigint NOT NULL UNIQUE;
    --
    -- Alter unique_together for userfans (1 constraint(s))
    --
    ALTER TABLE `repository_userfans` ADD CONSTRAINT repository_userfans_user_id_follower_id_9056a485_uniq UNIQUE (`user_id`, `follower_id`);
    ALTER TABLE `repository_userfans` ADD CONSTRAINT `repository_userfans_follower_id_efd980e9_fk_repositor` FOREIGN KEY (`follower_id`) REFERENCES `repository_userinfo`
    (`nid`);
    ALTER TABLE `repository_userfans` ADD CONSTRAINT `repository_userfans_user_id_9ce6b2c6_fk_repository_userinfo_nid` FOREIGN KEY (`user_id`) REFERENCES `repository_user
    info` (`nid`);
    ALTER TABLE `repository_blog` ADD CONSTRAINT `repository_blog_user_id_aade3363_fk_repository_userinfo_nid` FOREIGN KEY (`user_id`) REFERENCES `repository_userinfo` (`
    nid`);
    COMMIT;

  • 相关阅读:
    [转载]DataView详解
    (转)C#中“EQUALS”与“==”的速度比较
    CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFramework64v2.0.50727Temporary ASP.NET Files oot921bbfc4ca7cf42App_Code.fu98jwep.dll”--“拒绝访问。 ”
    C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
    C# 利用mysql.data 在mysql中创建数据库及数据表
    【转载】经典SQL语句大全
    我不是一个做产品人,但我有一颗做产品的心--浅谈“痛点”
    软件工程--个人总结
    第十六周进度条
    梦断代码阅读笔记3
  • 原文地址:https://www.cnblogs.com/qiangayz/p/9119873.html
Copyright © 2011-2022 走看看