我在flask应用程序中使用MySQL数据库。我也将SQLAlchemy与pymysql一起使用。该应用程序部署在Web服务器(基于Linux-特别是Ubuntu)上。我正在尝试使用flask-migrate应用迁移,但是我一直在得到错误
(1170,u“密钥规范中使用的BLOB / TEXT列'user_id'没有密钥长度”)
我的主键如下:
id = db.Column(db.String(32),default=lambda: str(uuid4().hex), primary_key=True)
出现此错误的特定表是关联表:代码为
user_association_table = db.Table('association', db.Model.metadata,
db.Column('user_id', db.String(32), db.ForeignKey('user.id')),
db.Column('article_id', db.String(32), db.ForeignKey('article.id'))
)
我看到过类似的问题,但是他们解决了如何直接使用MySQL修复它的问题。由于我对mysql的生成方式几乎没有控制,因此如何绕过此错误?
答案 0 :(得分:0)
找出我要对其应用迁移的原始MySQL数据库与主键--> db.String(32)
的大小并不完全一致。删除并重新创建数据库可使迁移正常进行。
如果数据库中有数据,那么在不丢失数据的情况下重新创建数据库将更加痛苦。