PaiGramDocs/docs/advanced/sqlmodel.md
2023-10-21 17:24:19 +08:00

1.3 KiB
Raw Blame History

contributors
karakoo

SQLModel 和 Alembic 管理数据库

在我们的项目中,我们使用 Python 的 SQLModel 和 Alembic 来管理我们的数据库。

SQLModel

SQLModel 是一个库,它允许我们以 Python 类的形式定义我们的数据库模型。这些类可以映射到数据库中的表,并且可以用于创建、查询和操作数据。

我们的数据模型保存在 services/.../models.py 文件中。

例如,一个简单的用户模型可能如下所示:

from sqlmodel import SQLModel, Field

class User(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    username: str
    email: str

Alembic

Alembic 是一个数据库迁移工具,它允许我们管理数据库的版本。通过 Alembic我们可以跟踪数据库模型的更改并将这些更改应用到我们的数据库中。

使用 Alembic我们可以创建一个新的迁移如下所示

alembic revision -m "Add user table"

然后,我们可以编辑生成的迁移文件,以添加创建用户表的代码。

最后,我们可以使用以下命令应用迁移:

alembic upgrade head

通过这种方式,我们可以确保我们的数据库模型和数据库始终保持同步。