SQLAlchemy:在中更新模型时,如何更新数据库中的表模型.py

2024-04-26 18:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为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)

Tags: 模型falsetruedefaultdbstring属性sqlalchemy
1条回答
网友
1楼 · 发布于 2024-04-26 18:21:45

这是一个很好的例子,说明了database migrations的重要性。理想情况下,所有的数据定义都应该使用迁移来完成。在

因为您已经在使用烧瓶SQLAlchemy,Flask-Migrate可能是一个很好的适合:

  1. Flask-Migrate添加到项目的依赖项中
  2. 运行flask db init为项目初始化迁移(这是一次性任务)
  3. 更新你的模型(听起来你已经这么做了)
  4. 运行flask db migrate生成迁移文件(这应该只作为开发迁移的一部分来完成)
  5. 使用flask db upgrade应用它(当合并新代码时,需要在数据库的每个副本上执行此操作,即在每个开发机器上、在准备阶段、在生产中等等)

相关问题 更多 >