Django migrations 默认目录修改的方法教程


Posted in Python onSeptember 28, 2018

如何使用

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

python manager.py makemigrations

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

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

python manager.py migrate

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

migrations 默认目录修改

群里看到个问题:

migrations目录默认放在./app/models/migrations下面,能指定到别的目录吗?比如/data/app/models/migrations下么?

闲来无事,就稍稍研究了一下。

先从Migration 方向入手,翻遍手册,没有发现可以指定 path 的地方。

再从 settings 着手,查找有没有相关可设置的方向,稍稍有所收获:

MIGRATION_MODULES 选项,可以指定各个label的migration的包路径及名字。但还是相对路径,除非指定一个当前程序路径外的包路径?这点我没有去验证。

最后再从源码入手,其实就在

Lib\site-packages\django\core\management\commands\makemigrations.py 中使用了 MigrationWriter 类而MigrationWriter类中的 path 方法决定了路径,path方法 调用了 basedir 和 filename 方法,一个控制文件名,一个管理路径。在不想改变文件名的情况下,只需要修改basedir 方法中的 返回值就可以实现这个需求。

Tips: 改完系统包,需要部署到其它环境的时候不要忘了将修改带过去!

basedir 中调用了 MigrationLoader 的 migrations_module 方法,该方法返回 app_label 名称 及 一个布尔值

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 错误和异常小结
Oct 09 Python
python中执行shell的两种方法总结
Jan 10 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
Django如何简单快速实现PUT、DELETE方法
Jul 24 Python
Django 自定义分页器的实现代码
Nov 24 Python
基于python判断目录或者文件代码实例
Nov 29 Python
基于python使用tibco ems代码实例
Dec 20 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
python 代码运行时间获取方式详解
Sep 18 Python
python数据结构之线性表的顺序存储结构
Sep 28 #Python
python实现顺序表的简单代码
Sep 28 #Python
linux安装Python3.4.2的操作方法
Sep 28 #Python
python求质数的3种方法
Sep 28 #Python
python数据结构学习之实现线性表的顺序
Sep 28 #Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 #Python
使用Python处理BAM的方法
Sep 28 #Python
You might like
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
请解释接口的显式实现有什么意义
2012/05/26 面试题
关于祖国的演讲稿
2014/05/04 职场文书
保护动物的标语
2014/06/11 职场文书
电信营业员岗位职责
2015/04/14 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书