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算法学习之桶排序算法实例(分块排序)
Dec 18 Python
Python单链表的简单实现方法
Sep 23 Python
python的变量与赋值详细分析
Nov 08 Python
浅析python参数的知识点
Dec 10 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
pytorch锁死在dataloader(训练时卡死)
May 28 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快速统计某个数据库中每张表的数据量
2012/09/04 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Numpy数组的保存与读取方法
2018/04/04 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
python3爬虫中异步协程的用法
2020/07/10 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
python爬取天气数据的实例详解
2020/11/20 Python
一个入门级python爬虫教程详解
2021/01/27 Python
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
临床医学专业求职信
2014/08/08 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
个人剖析材料范文
2014/09/30 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技