zoukankan      html  css  js  c++  java
  • (转)Flask框架+mySQL数据库:误删migrations文件夹后再次创建时遭遇错误(Can't locate revision identified by ‘xxx’)

    转自:(http://blog.csdn.net/Super_Tiger_Lee/article/details/77772752

    1、模型初始化环境:

    命令:python manage.py db init 
    cmd的回应:

    Creating directory F:codeflask_projectmigrations ... done Creating directory 
    F:codeflask_projectmigrationsversions ... done Generating 
    F:codeflask_projectmigrationsalembic.ini ... done Generating 
    F:codeflask_projectmigrationsenv.py ... done Generating 
    F:codeflask_projectmigrationsenv.pyc ... done Generating 
    F:codeflask_projectmigrationsREADME ... done Generating 
    F:codeflask_projectmigrationsscript.py.mako ... done Please edit 
    configuration/connection/logging settings in 
    'F:\code\flask_project\migrations\alembic.ini' before proceeding.
    

    2、把表中模型映射到数据库中 先生成迁移文件

    命令:python manage.py db migrate 
    cmd回应:

    INFO  [alembic.runtime.migration] Context impl MySQLImpl.
    INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
    INFO  [alembic.autogenerate.compare] Detected added table 'answer'
    Generating F:codeflask_projectmigrationsversions3007cf54a530_.py ... done
    

    这时打开migration文件夹后再打开versions文件夹会看到形如3007cf54a530_.py文件和3007cf54a530_.cpy文件


    3、再把迁移文件映射到数据库中 
    命令:python manage.py db upgrade 
    cmd回应:

    INFO  [alembic.runtime.migration] Context impl MySQLImpl.
    INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
    INFO  [alembic.runtime.migration] Running upgrade  -> 3007cf54a530, empty message
    

    以上是正常的情况 
    今天我手残,项目做到一半把migrations文件误删了,而且这个文件删除后是无法找回的,回收站里是找不到的 
    于是我重新执行步骤一,成功 
    执行步骤二,报错:

    alembic.util.exc.CommandError: Can't locate revision identified by '68c8e45e399c'
    

    后来终于找到一篇相关文章 
    把问题解决了

    我的理解是: 
    当把后台与数据库建立关系后,双方会分别产生一个“接口”,后台的“接口”是migrations文件夹中的versions文件夹中的文件;数据库的“接口”是这个表“alembic_version”(蒸馏器版本?什么鬼名字?) 
    我把migrations删除后,alembic_version没有改变。当我新建一个migrations后,两个“接口”对不上了,所以会报错: 
    alembic.util.exc.CommandError: Can't locate revision identified by '68c8e45e399c' 

    所以这种错误最简单的解决办法就是把数据库中的alembic_version表删掉,然后就可以继续后面的操作了

  • 相关阅读:
    jquery.validate.unobtrusive的使用
    企业库判断数据库连接类型
    win10下安装LoadRunner12汉化包
    win10安装LoadRunner时,安装.net framwork组件报0x800F081F错误 解决办法
    wrk性能测试(详解)
    wrk压测报错 LF character expected at 1:111
    Linux scp命令详解(服务器之间复制文件或目录)
    Linux cat命令详解(连接文件并打印到标准输出设备上)
    性能测试流程
    ‘mysql’不是内部或外部命令,也不是可运行的程序--解决方法
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7644954.html
Copyright © 2011-2022 走看看