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 字段名;
python 中文名:蟒蛇,设计者:Guido van Rossum