Django migrations 默认目录修改的方法教程
作者:Virgo 发布时间:2021-10-15 20:17:59
如何使用
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 名称 及 一个布尔值
来源:https://segmentfault.com/a/1190000016545475


猜你喜欢
- 一 模板语法传值方式一:# urls.pypath('template', views.template)# views.p
- 如下所示:#Copyright (c)2017, 东北大学软件学院学生# All rightsreserved#文件名称:a.py# 作 者
- Tebsorflow开源实现多GPU训练cifar10数据集:cifar10_multi_gpu_train.pyTensorflow开源实
- 最近心血来潮加上有点闲情,动手写了第一个JavaScript版的俄罗斯方块Easy Tetris.先上Easy Tetris俄罗斯方块游戏截
- 直接切入主题,从HTML页面上传文件,Python接收处理。但其中发现有些小问题,把它写出来,算是积累吧!HTML页面代码:<form
- 原生实现jQuery的sibling方法<body><span>我是span标签</span><d
- 但凡介绍数据库连接池的文章,都会说“数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理
- 译注:前两天看到一篇不错的英文文章,叫做 How browsers work,该文概要的介绍了浏览器从头到尾的工作机制,包括HTML等的解析
- 随着同时开发的项目越来越多,需要不停的在各个不同版本的 python 环境之间切换,所以想到了pyenv。以前一直使用的 vir
- 我就废话不多说了,直接上代码吧!第一种def test1(): l = [] for i in range(1000
- Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Pyth
- 本文实例为大家分享了vue+axios+java实现文件上传的具体代码,供大家参考,具体内容如下背景vue.js + axios + ele
- 最近给客户演示程序运行结果,我就想到用Python写一个录屏程序,在网上能找到现成的源码,但是它的录屏是录制整个屏幕的。但是在屏幕桌面下方的
- 原因是dict.keys()的返回结果不再是一个list了Python3的keys(), values(), items()返回的都是迭代器
- 在头条看了一篇文章,说五行代码实现人脸识别,一时感兴趣了,来搞搞先是按照文章说的 操作了几步,到后面虽然,import dlib 不报错,但
- 假如读者已经熟悉了ASP 2.0,并正在寻找3.0版本中的实际改变的列表,那么将在下面发现这些信息。假如读者是一个ASP的初学者,可以越过本
- BeautifulSoup是Python的一个第三方库,可用于帮助解析html/XML等内容,以抓取特定的网页信息。目前最新的是
- 视图视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作
- 前言在Django中有大量的通用类视图,例如ListView,DetailView,CreateView,UpdateView等等,将所有重
- 前言这篇文章主要介绍了pyinstaller打包opencv和numpy程序运行错误解决,文中通过示例代码介绍的非常详细,对大家的学习或者工