【发布时间】:2019-06-02 23:45:58
【问题描述】:
我有一个名为 User 的 SQLAlchemy 模型,我想向该类添加另一个属性,例如:address。
我尝试添加一个新的类属性,并希望 SQLAlchemy 能够意识到类中的变化并自动更新表。事实并非如此。
我在网上查看了如何对模型进行更改,然后自动更新表格,但我发现的只是db.sessions,他们在其中手动输入了他们想要进行的更改。有没有更好的方法来更新模型?
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
password = db.Column(db.String(60), nullable=False)
# new class property that I want to add
address = db.Column(db.String(100), nullable=False)
【问题讨论】:
-
您是否能够使用下面显示的答案来解决这个问题?如果是这样,请记得accept it。这会向其他用户显示您找到了解决方案。
-
是的,我能够让它工作。我目前正在和一个朋友一起工作,所以为我们俩设置 flask-migrate 有点困难,但我们最终 gitignored 迁移文件夹。忽略迁移文件夹是否常规。我只是想确保我做对了吗?
-
不,忽略迁移文件夹绝对是不常规的。那应该分享。如果你们中的一个人需要修改数据库模式,请创建一个迁移并将其添加到存储库中。迁移应该在需要的地方“与”代码一起应用。例如,在切换分支时应用迁移。当你回去时,你可能需要扭转它们。 (想一想:如果您忽略迁移文件夹,您和您的朋友如何维护相同的数据库架构?如果您有不同的架构,您应该在生产中使用哪个?)
标签: python database flask sqlalchemy flask-sqlalchemy