zoukankan      html  css  js  c++  java
  • flask--数据库迁移之连环踩坑记

    flask数据库迁移命令:

    python manage.py db init
    python manage.py db migrate
    python manage.py db upgrade

    1.报错:KeyError: 'DATABASE_URL'

    # DATABASE_URL是我的代码逻辑里定义了连接的数据库地址
    postgres_local_base = os.environ['DATABASE_URL']
    解决方案: 设置环境变量:set DATABASE_URL=123 value可以随意定义 执行:set 可以查看所有环境变量

    2.报错:一长串版本号的东西,需要将mysql版本号的表清了进行迁移

    # 解决方案:
        delete from alembic_version;

     

    3.用可视化工具Navicat创建类似省市区多级分类表时,parent_id与主键id数据类型必须一致,不要点无符号

    # 报错提示:
        Cannot add foreign key constraint

    4.有时候Model中的某个字段数据类型改变,执行数据库迁移命令不会报错,但是运行命令 ~show create table 表名~ 查看到的数据类型其实并没有真正变更成功

    # 解决方案:
    找到migrations/env.py文件,在run_migrations_online函数加入如下内容:
    context.configure(
              compare_type=True,  # 检查字段类型
              compare_server_default=True # 比较默认值
              )

    5.不能成功删除外键需要执行命令:

    ALTER TABLE 表名 DROP FOREIGN KEY 字段名;
  • 相关阅读:
    一生何求
    request请求生命周期
    django-restframework
    并发编程小结
    大白话五种IO模型
    Python程序中的协程操作-greenlet模块
    Python程序中的协程操作-gevent模块
    协程基础
    Python程序中的线程操作(线程池)-concurrent模块
    Python程序中的线程操作-线程队列
  • 原文地址:https://www.cnblogs.com/lutt/p/11595062.html
Copyright © 2011-2022 走看看