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

45 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
contributors: ["karakoo"]
---
# SQLModel 和 Alembic 管理数据库
在我们的项目中,我们使用 Python 的 SQLModel 和 Alembic 来管理我们的数据库。
## SQLModel
SQLModel 是一个库,它允许我们以 Python 类的形式定义我们的数据库模型。这些类可以映射到数据库中的表,并且可以用于创建、查询和操作数据。
我们的数据模型保存在 `services/.../models.py` 文件中。
例如,一个简单的用户模型可能如下所示:
```python
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我们可以创建一个新的迁移如下所示
```bash
alembic revision -m "Add user table"
```
然后,我们可以编辑生成的迁移文件,以添加创建用户表的代码。
最后,我们可以使用以下命令应用迁移:
```bash
alembic upgrade head
```
通过这种方式,我们可以确保我们的数据库模型和数据库始终保持同步。