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中的元类(metaclass)
Feb 14 Python
Python工程师面试题 与Python基础语法相关
Jan 14 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
python 爬虫请求模块requests详解
Dec 04 Python
如何用Python进行时间序列分解和预测
Mar 01 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
JS常用函数使用指南
2014/11/23 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
js运动应用实例解析
2015/12/28 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
Python 可视化神器Plotly详解
2020/12/26 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
自荐信结尾
2013/10/27 职场文书
毕业证委托书范文
2014/09/26 职场文书
《分数乘法》教学反思
2016/02/24 职场文书