问题1:sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1049, "Unknown database 'file'")

原因:在进行数据库迁移之前没有创建对应的数据库
解决办法:
创建数据库:create database database_name charset=utf8;
如: create database file charset=utf8;
问题2:sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1138, 'Invalid use of NULL value')

原因:在最初没有设置默认值为not null,而后期想要修改时报错了,因为这时修改会影响很多值的初始化设置,而且不统一,可能有的列允许为空,有的列不允许为空。
解决办法:
- 删除数据库,重新创建空数据库。
- 删除所有的数据表。
问题3:Error: Can't locate revision identified by 'xxxx'
原因:数据库版本不对,可能是更换了 migrations 文件,但是仍旧使用的是原来的数据库表。
解决办法:
- 删除 migrations 文件夹 + 数据库表中的 alembic_version 表,重新初始化数据库并更新;(可以保存原来的数据库表中的数据)
- 删除整个数据库表,之后便可以直接进行数据库初始化更新操作。(migrations文件夹也可以删除,相当于重新创建数据库表,原来的数据也不会存在)
这篇博客主要介绍了在使用SQLAlchemy操作MySQL数据库时可能出现的三种错误及其解决办法。错误1是未创建数据库导致的OperationalError,解决方法是创建对应数据库。错误2是尝试修改列的NULL属性但已存在数据,解决策略是删除数据库并重建。错误3是数据库版本不匹配,解决方式是删除migrations文件夹和alembic_version表,重新初始化数据库。
1117

被折叠的 条评论
为什么被折叠?



