【问题标题】:How would I Update an sql database I made with flask-sqlalchemy?我将如何更新我用 flask-sqlalchemy 制作的 sql 数据库?
【发布时间】:2021-01-22 00:52:44
【问题描述】:

我正在使用 flask-sqlalchemy 来存储用户和帖子。整个数据库存储在这个 users.sqlite3 文件中。假设这是我的用户类:

class User(db.Model, UserMixin):
    id = db.Column("id", db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    email = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(100))
    status = db.Column(db.String(100))
    about = db.Column(db.String(500))

现在假设我想添加另一列,例如喜欢的数字或其他内容。我必须添加number = db.Column(db.Integer())。但是它不起作用,因为文件已经生成,现在我说那里不存在另一列。因此,每次我想更新它时,我都必须删除该文件中的所有数据并从一个空数据库开始。

有没有办法解决这个问题?我可以做些什么来让它在我添加其他值时为空吗?

【问题讨论】:

标签: python sqlalchemy flask-sqlalchemy


【解决方案1】:

这称为数据库迁移。你基本上需要2个步骤-

  1. 将您的模型文件更新为新状态(添加您的列)。
  2. 运行“迁移” - 这是一次性更改以更新现有数据库以匹配新模型(在这种情况下,它将是 UPDATE TABLE ADD COLUMN ...

sqlalchemy 提供了 alembic 包来帮助迁移,您只需要生成它们并确保它们在每次部署时运行,以使您的数据库架构与您的代码保持同步。

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2020-06-30
    • 2017-04-08
    • 2018-05-14
    • 2018-07-03
    • 2010-11-13
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多