• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Django如何重置migration的几种情景

    情景一:不需要原有的数据库数据

    1. 删除数据库所有的表
    2. 删除项目的migration模块中的所有 文件,除了__init__.py 文件
    3. 执行脚本
    python manage.py makemigrations
    python manage.py migrate

    情景2:不想要删除现有的数据库,只是想重新建立 migration 文件

    首先要保证,目前的migration文件和数据库是同步的,通过执行

    python manage.py makemigrations
    

    如果看到 这样的提示: No changes detected,则可以继续接下来的步骤

    通过执行

    python manage.py showmigrations

    结果,可以看到当前项目,所有的app及对应的已经生效的migration文件如

    git_hook
     [X] 0001_initial
    guardian
     [X] 0001_initial
    kombu_transport_django
     [X] 0001_initial
    message
     (no migrations)
    order
     [X] 0001_initial
    pay
     [X] 0001_initial
     [x] 0002_add_model
    sessions
     [X] 0001_initial

    通过执行

    $ python manage.py migrate --fake pay zero

    这里的 pay就是你要重置的app

    之后再执行 python manage.py showmigrations,你会发现 文件前的 [x] 变成了[ ]

    现在,你可以删除pay 这个 app下的migrations模块中 除 init.py 之外的所有文件。

    之后,执行

    $ python manage.py makemigrations

    程序会再次为这个app 生成 0001_initial.py 之类的文件

    最重要的一步来了, 执行

    python manage.py migrate --fake-inital

    –fake-inital 会在数据库中的 migrations表中记录当前这个app 执行到 0001_initial.py ,但是它不会真的执行该文件中的 代码。
    这样就做到了,既不对现有的数据库改动,而又可以重置 migraion 文件,妈妈再也不用在 migration模块中看到一推文件了。

    参考https://simpleisbetterthancomplex.com/tutorial/2016/07/26/how-to-reset-migrations.html

    到此这篇关于Django如何重置migration的几种情景的文章就介绍到这了,更多相关Django 重置migration内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Django重置migrations文件的方法步骤
    • 详解重置Django migration的常见方式
    上一篇:Django中的DateTimeField和DateField实现
    下一篇:一文读懂python Scrapy爬虫框架
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Django如何重置migration的几种情景 Django,如何,重置,migration,