django migrations

转载:https://blog.csdn.net/jazywoo123/article/details/49821051

在1.6之前, Django只支持添加新的model到数据库, 而无法编辑或修改已经存在的model. 在当时, 这些Django缺失的功能可以通过South实现.

1. 新的命令

Django 1.7 为我们带来了三个新命令:

  • migrate: 用于执行迁移动作
  • makemigrations: 基于当前的model创建新的迁移策略文件
  • sqlmigrate: 显示迁移的SQL语句

值得注意的是, migration是基于App的, 因此, 我们可以针对某些app不启用migration功能.

2. 如何使用

migrations的使用非常简单: 修改model, 比如增加field, 然后运行

python manage.py makemigrations

你的mmodel会被扫描, 然后与之前的版本作比较, 在app的migrations目录下生成本次迁移文件.

我们建议查看一下该迁移文件, 确保没有问题. 然后运行:

python manage.py migrate

migrate命令会进行比较, 并应用该迁移.

3. 从South到新的Django migrations

如果想从south升级到最新的django migration, 可以按以下步骤实现:

  • 确保south中的migration全部被应用了
  • 从 INSTALLED_APPS中移除south
  • 删除每个app下migration目录中的所有文件, 除了__init__.py
  • 运行python manage.py makemigrations, Django会初始化migration
  • 运行python manage.py migrate, django会发现数据库和初始化的migration相同, 从而将他们标记为已应用
又时候操作migrations时,会产生一些错误,但是又必须要执行python manage.py migrate 报错,这时可以加上参数--fake

python manage.py migrate --fake  执行命令,但是不做实际操作,知识更新操作的索引,避免与数据库的不同步

django migrations相关推荐

  1. Django使用心得(一) 善用migrations

    在使用和学习Django框架时,发现很多人包括我自己在对Django项目进行版本管理时,通常把migrations文件添加到了.gitignore中. 笔者也一直有疑问这种做法是否正确,于是去查看官方 ...

  2. django数据库迁移问题

    数据库迁移问题一般就是什么表已经创立,迁移不了 简单粗暴的解决方法. 把django--migrations和app下面的migrations全删除

  3. django 部署_狂野的Django:部署生存的技巧

    django 部署 by Ali Alavi 通过Ali Alavi 狂野的Django:部署生存的技巧 (Django in the wild: tips for deployment surviv ...

  4. Django+Vue开发生鲜电商平台之1.项目介绍

    文章目录 一.项目概览 二.项目技术要点 三.项目预览 我永远相信只要永不放弃,我们还是有机会的.最后,我们还是坚信一点,这世界上只要有梦想,只要不断努力,只要不断学习,不管你长得如何,不管是这样,还 ...

  5. Django删除数据表后,再重新生成新数据表

    删除数据表后,数据库的Django migrations数据未删除,如果直接命令行调用如下命令,是不会再生成数据表的 Python manager.py makemigrations Python m ...

  6. Django企业开发读书笔记(及官方文档学习笔记) 老男孩2019Go语言视频学习

    目标:深入理解Django以及web开发深入知识,掌握Gin ,Go micro 框架 ,Kafka ,Zookeeper 为kubernetes Istio 做微服务,服务网格做铺垫 实现Pytho ...

  7. 如何使用Django和GraphQL创建URL缩短器

    The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. ...

  8. 面试题-python/django/sql

    https://github.com/the5fire/django-interview-questions Python基础 基础语法是否熟悉?介绍下. 一.标识符 在 Python 里,标识符由字 ...

  9. 9Django-----------Django框架------------安装使用、基本介绍

    Django框架 一.Django框架介绍 二.Django框架搭建 (一)环境搭建 (二)项目实例 三.项⽬结构介绍 (一)URL与视图 1)视图的定义 2)路由的定义 3)URL模块化 4)URL ...

最新文章

  1. php使用NuSoap产生webservice结合WSDL让asp.net调用
  2. ios 自定义UIView绘制时文字上下颠倒问题解决
  3. 9、Java Swing JRadioButton:单选按钮组件
  4. CSS一个冒号是伪类:用于监控动作、两个冒号是伪元素::用于定位元素
  5. c:forEach 取 map的值
  6. C#学员信息管理试题
  7. strcpy()、memcpy()、memmove()、memset()及其应用
  8. [jQuery]回到顶部
  9. 计算文件MD5值的多种方法
  10. 【LTE学习日记01】子载波功率与信道功率的换算
  11. 小程序坑录-wx.getLocation接口申请
  12. 阿里云域名注册流程(全流程详细教程)
  13. java生成数字字母组合_java生成随机数字和字母组合
  14. 签名证书(.keystore)生成指南
  15. 虚拟机是什么意思?有关虚拟机的知识介绍
  16. PNAS:大脑区域间耦合的增加和减少会相应增加和减少人类大脑中的振荡活动
  17. LIVE555再学习 -- live555实现RTSP直播服务器
  18. 小程序开发系列之基础部分-代码结构
  19. mac超级眼,实时为您的mac系统状态进行高效监控
  20. 怎样获取屏幕的刷新率

热门文章

  1. 问道五周年服务器维护公告,礼包送不停 《问道》五周年普天同庆
  2. 学习SpringBoot:java图片上传到服务器
  3. cad修改快捷键_CAD的这些快捷键,好用到暴风哭泣,一秒钟完成3小时操作
  4. php mgtv m3u8,芒果TV解析源码
  5. 2021人工智能核心技术产业白皮书:深度学习技术驱动下的人工智能时代!
  6. 如何高速拷贝超大文件?大文件拷贝工具Total Copy和Burst Copy
  7. 斯坦李走了,学习还要继续啊!
  8. Ackerman阿克曼(后驱动)前轮舵机转向后轮电机驱动移动平台的建模及控制算法
  9. Centos开发环境配置
  10. SUNLIKE中取所有进货单物品的最新供应商单价