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爬虫之神器正则表达式
Nov 06 Python
python字典get()方法用法分析
Apr 17 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python3实现购物车功能
Apr 18 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
Jul 25 Python
基于python的socket实现单机五子棋到双人对战
Mar 24 Python
Python timeit模块的使用实践
Jan 13 Python
Python如何使用turtle库绘制图形
Feb 26 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
使用BeautifulSoup4解析XML的方法小结
Dec 07 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python cv2图像质量压缩的算法示例
Jun 04 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将任何格式视频转为flv的代码
2009/09/03 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
php中require和require_once的区别说明
2014/02/27 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
php实现网页端验证码功能
2017/07/11 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
JQuery 入门实例1
2009/06/25 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Python正则表达式完全指南
2017/05/25 Python
利用aardio给python编写图形界面
2017/08/21 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Python使用wxPython实现计算器
2018/01/30 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
2014年乡镇个人工作总结
2014/12/03 职场文书
大学生党员自我评价
2015/03/04 职场文书