小陆同学

python 中文名:蟒蛇,设计者:Guido van Rossum

导航

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 字段名;

 

posted on 2019-09-26 23:02  小陆同学  阅读(517)  评论(0编辑  收藏  举报