Flask sqlalchemy报错“Table ‘user’ is already defined for this MetaData instance”解决
背景
今天改需求时在数据库表中增加一个新字段后执行python manage.py db migrate
,python managr.py db upgradt
后报错,关键log输出如下:
sqlalchemy.exc.InvalidRequestError:Table 'user' is already defined for this MetaData
instance. Specify 'extend_existing=True' to redefine options and columns on an existing
Table object
解决:
在User类中添加__table_args__ = {'extend_existing': True}
,如下文所示:
class User(UserMixin, db.Model):
__tablename__ = 'user'
__table_args__ = {'extend_existing': True}
...