我有一个名为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)
这是一个很好的例子,说明了database migrations的重要性。理想情况下,所有的数据定义都应该使用迁移来完成。在
因为您已经在使用烧瓶SQLAlchemy,Flask-Migrate可能是一个很好的适合:
Flask-Migrate
添加到项目的依赖项中flask db init
为项目初始化迁移(这是一次性任务)flask db migrate
生成迁移文件(这应该只作为开发迁移的一部分来完成)flask db upgrade
应用它(当合并新代码时,需要在数据库的每个副本上执行此操作,即在每个开发机器上、在准备阶段、在生产中等等)相关问题 更多 >
编程相关推荐