コンテンツにスキップ

マイグレーションの方法

基本的なコマンド

# マイグレーションの適用
# ここでは、最新のマイグレーションを適用するコマンド
# 基本的に最初に行うこと
uv run alembic upgrade head

# マイグレーションのダウングレード
## ここでは、1つ前のバージョンに戻すコマンド
uv run alembic downgrade -1

# マイグレーションの履歴を表示
uv run alembic history

# 特定のバージョンのマイグレーションを適用
## ここでは、特定のバージョンIDを指定してマイグレーションを適用
uv run alembic upgrade <version_id>

# 特定のバージョンにダウングレード
## ここでは、特定のバージョンIDを指定してダウングレード
uv run alembic downgrade <version_id>

# マイグレーションの状態を確認
## ここでは、現在のデータベースの状態を確認するコマンド

uv run alembic current

モデルの追加方法

# src/models/task.py

# モデル(例)
class Project(SQLModel, table=True):
    """プロジェクトモデル

    プロジェクト情報を管理するテーブル。

    Attributes:
        id (int | None): プロジェクトID
        name (str): プロジェクト名
        created_at (datetime): 作成日時
    """

    id: int | None = Field(default=None, primary_key=True)
    name: str
    created_at: datetime = Field(default_factory=datetime.now)
# src/models/migrations/env.py
from src.models.task import Task, Project # ここでモデルをインポート

# モデルのメタデータをターゲットに設定
target_metadata = [
    Task.metadata,
    Project.metadata, # 他のモデルも必要に応じて追加
]

マイグレーションの作成

# 新しいマイグレーションを作成
uv run alembic revision --autogenerate -m "add project table"