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 21 Python
python开发之文件操作用法实例
Nov 13 Python
django 发送手机验证码的示例代码
Apr 25 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 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
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
Vue项目打包编译优化方案
2020/09/16 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Saltstack快速入门简单汇总
2016/03/01 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Python实现Event回调机制的方法
2019/02/13 Python
python 发送json数据操作实例分析
2019/10/15 Python
原生python实现knn分类算法
2019/10/24 Python
python实现用户名密码校验
2020/03/18 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
社区党建工作汇报材料
2014/10/27 职场文书
大学军训决心书
2015/02/05 职场文书
奖学金个人总结
2015/03/04 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server