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

标签:Django,migrations
0
投稿

猜你喜欢

  • Python随机生成8位密码的示例详解

    2023-09-15 21:04:03
  • utf8_unicode_ci与utf8_general_ci的区别

    2010-03-03 15:54:00
  • 网站如何使用黄金分割布局

    2010-11-05 18:34:00
  • meta标签之详解

    2008-01-13 18:48:00
  • 一个ASP记录集分页显示的例子

    2007-09-14 10:57:00
  • 从Web查询数据库之PHP与MySQL篇

    2009-09-19 16:58:00
  • 如何读取一个.ini文件?

    2009-11-18 20:58:00
  • VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)

    2022-03-13 22:55:19
  • 报错No module named numpy问题的解决办法

    2023-09-20 12:02:07
  • python简单读取大文件的方法

    2021-04-24 04:10:47
  • python实现经纬度采样的示例代码

    2021-12-25 13:24:37
  • Python 数据清洗删除缺失值替换缺失值详情

    2022-03-02 05:46:11
  • python爬虫的一个常见简单js反爬详解

    2022-10-26 11:46:27
  • python中的三种注释方法

    2023-05-27 07:47:01
  • [翻译]标记语言和样式手册 Chapter 11 打印样式

    2008-02-11 18:44:00
  • 解决jupyter加载文件失败的问题

    2022-07-21 19:17:05
  • Python实现带图形界面的炸金花游戏

    2021-06-21 15:41:56
  • 网站注册那些事儿

    2010-01-05 16:49:00
  • 设置mysql最大连接数的方法

    2010-12-03 16:00:00
  • 解决Matplotlib图表不能在Pycharm中显示的问题

    2023-05-26 17:10:03
  • asp之家 网络编程 m.aspxhome.com