Flask-appbuilder继承已有的Model增加字段,但是数据库表中的字段并没有增加

最近在学习Flask-appbuilder,我写了两个Model,使用db.create_all()方法创建数据库表。
两个Model的代码如下

class Shit(Model):
    id = Column(Integer, primary_key=True)
    name = Column(String(50), unique=True, nullable=False)

    def __repr__(self):
        return self.name

class BigShit(Shit):
    big = Column(Boolean, default=False )

当我写完Shit(原谅,随便起的名字)之后,调用db.create_all(),数据库中对应的表就建好了;
当我写完BigShit之后,再次调用db.create_all(),因为数据库中已经有这个表了,所以字段就没有更新,还是原来的两个字段;
我将shit表从数据库中删除,再次运行,BigShit表的字段就全了。

我想请问一下,当我继承一个Model表来增加字段,如何在不删除原来的表的情况下,让F.A.B自动帮我在数据库中增加这些字段?
3q~

阅读 4.6k
1 个回答

晓得了,需要使用db migrate技术才可以。


如果想把原来的表删除,然后再新建可以使用如下方法

Model.__table__.drop(db.engine)
db.create_all()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题