You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境中执行Django makemigrations是否安全且具备确定性?

Django生产部署中makemigrations的安全性及第三方迁移处理方案

核心结论:生产环境禁止运行makemigrations

绝对不要在生产环境执行makemigrations命令,这违反Django部署的基本规范:

  • 生成的迁移文件未经过测试,直接在生产环境执行可能导致数据库结构损坏
  • 未提交到版本控制的迁移无法追踪,后续部署、回滚都会出现不可控问题,完全不具备确定性

第三方应用动态生成迁移的解决思路

以hordak根据CURRENCIES配置生成新迁移为例,不能依赖生产环境自动生成,正确做法是将第三方应用的迁移文件本地化并纳入版本控制,步骤如下:

  1. 在本地开发环境配置好目标CURRENCIES,运行指定应用的makemigrations命令:
    python manage.py makemigrations hordak
    
  2. 找到hordak包下生成的新迁移文件(通常在虚拟环境的site-packages/hordak/migrations/目录),将这些文件复制到你项目内的自定义目录,比如your_project/hordak_custom_migrations/
  3. 在项目的settings.py中覆盖hordak的迁移模块路径:
    INSTALLED_APPS = [
        # 保持hordak在INSTALLED_APPS中
        'hordak',
        # ...其他应用
    ]
    
    MIGRATION_MODULES = {
        # 指定hordak使用自定义的迁移目录
        'hordak': 'your_project.hordak_custom_migrations',
    }
    
  4. 将hordak_custom_migrations目录提交到你的代码仓库,确保所有迁移都被版本控制

后续流程规范

  • 每次新增货币时,都在本地开发环境生成对应的迁移,在测试环境验证迁移的正确性后,再提交到代码仓库
  • 生产部署时仅执行python manage.py migrate命令,所有迁移都来自仓库中经过验证的文件,保证部署的确定性和安全性

内容的提问来源于stack exchange,提问作者nitsujri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:35:17