【发布时间】:2019-12-31 17:57:58
【问题描述】:
我在烧瓶应用程序中有一个表模型:
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(80), nullable=False)
body = db.Column(db.Text, nullable=False)
pubDate = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
而我使用db.crate_all()和db.add()/db.session在上表中添加了一些数据,效果很好!
然后我想更新并添加文章类的一些属性:
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(80), nullable=False)
body = db.Column(db.Text, nullable=False)
createDate = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
touchDate = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
publishDate = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now())
isVisible = db.Column(db.Boolean, nullable=False, default=True)
isDraft = db.Column(db.Boolean, nullable=False, default=True)
更新类文章后,我再次使用db.create_all()。当我运行我的烧瓶应用程序时,我收到以下错误消息:
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: article.createDate
[SQL: SELECT article.id AS article_id, article.title AS article_title, article.body AS article_body, article."createDate" AS "article_createDate", article."touchDate" AS "article_touchDate", article."publishDate" AS "article_publishDate", article."isVisible" AS "article_isVisible", article."isDraft" AS "article_isDraft"
FROM article
WHERE article."isVisible" = 1]
每当我更改db.Model 子类时,数据库中的表会自动同步吗? db.Model子类的属性改变后需要什么操作?
【问题讨论】:
标签: sqlite flask flask-sqlalchemy