Django migrations 默认目录修改的方法教程

 更新时间:2018年09月28日 11:13:57   作者:Virgo  
这篇文章主要介绍了Django migrations 默认目录修改的方法教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

如何使用

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调用另一个py文件并传递参数常见的方法及其应用场景

    Python调用另一个py文件并传递参数常见的方法及其应用场景

    这篇文章主要介绍了在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subprocess模块、os.system函数以及argparse模块,每种方法都有其适用场景和优缺点,需要的朋友可以参考下
    2025-01-01
  • pycharm与jupyter lab/notebook结合使用方式

    pycharm与jupyter lab/notebook结合使用方式

    这篇文章主要介绍了pycharm与jupyter lab/notebook结合使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python如何获取HTTP请求的Response Body

    Python如何获取HTTP请求的Response Body

    这篇文章主要介绍了在Python中如何获取HTTP请求的响应体,包括使用内置的urllib库、第三方库requests以及一些高级用法,有需要的小伙伴可以了解下
    2024-11-11
  • Python enumerate() 函数如何实现索引功能

    Python enumerate() 函数如何实现索引功能

    这篇文章主要介绍了Python enumerate() 函数如何实现索引功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 一文解决Python切换版本问题

    一文解决Python切换版本问题

    由于mac默认都会安装python2.x,这给我们python开发造成不便,我们经常要用到python3.x的版本来进行测试、开发,所以本文主要介绍了Python切换版本问题,感兴趣的可以了解一下
    2021-07-07
  • Python将列表数据写入文件(txt, csv,excel)

    Python将列表数据写入文件(txt, csv,excel)

    这篇文章主要介绍了Python将列表数据写入文件(txt, csv,excel),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python 设置xlabel,ylabel 坐标轴字体大小,字体类型

    python 设置xlabel,ylabel 坐标轴字体大小,字体类型

    这篇文章主要介绍了python 设置xlabel,ylabel 坐标轴字体大小,字体类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 详解Python 中的 defaultdict 数据类型

    详解Python 中的 defaultdict 数据类型

    这篇文章主要介绍了Python 中的 defaultdict 数据类型,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python坐标线性插值应用实现

    Python坐标线性插值应用实现

    这篇文章主要介绍了Python坐标线性插值应用实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 利用Python pandas对Excel进行合并的方法示例

    利用Python pandas对Excel进行合并的方法示例

    这篇文章主要给大家介绍了关于利用Python pandas对Excel进行合并的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论