Работа с базой данных
Платформа использует Alembic и SQLAlchemy для управления схемой базы данных.
Где находятся миграции
Скрипты миграций хранятся в каталоге backend/corpai_platform/migrations. Готовые версии лежат в подкаталоге versions/.
Основные команды
alembic revision --autogenerate -m "описание изменения"
alembic upgrade head
alembic revisionсоздаёт новый файл миграции, анализируя изменения моделей.alembic upgradeприменяет все миграции до указанной версии, обычноhead.
Пример
- Создаём модель:
# backend/corpai_platform/models/book.py
from sqlalchemy import Column, Integer, String
from corpai_platform.models.base import Base
class Book(Base):
__tablename__ = "book"
id = Column(Integer, primary_key=True)
title = Column(String, nullable=False)
- Генерируем миграцию:
alembic revision --autogenerate -m "Add book table"
- Содержимое сгенерированного файла в
backend/corpai_platform/migrations/versions/<id>_add_book_table.py:
from alembic import op
import sqlalchemy as sa
def upgrade() -> None:
op.create_table(
"book",
sa.Column("id", sa.Integer(), primary_key=True),
sa.Column("title", sa.String(), nullable=False),
)
def downgrade() -> None:
op.drop_table("book")
- Применяем изменения к базе:
alembic upgrade head
Команды выполняются из каталога backend/.