Перейти к содержанию

Работа с базой данных

Платформа использует Alembic и SQLAlchemy для управления схемой базы данных.

Где находятся миграции

Скрипты миграций хранятся в каталоге backend/corpai_platform/migrations. Готовые версии лежат в подкаталоге versions/.

Основные команды

alembic revision --autogenerate -m "описание изменения"
alembic upgrade head
  • alembic revision создаёт новый файл миграции, анализируя изменения моделей.
  • alembic upgrade применяет все миграции до указанной версии, обычно head.

Пример

  1. Создаём модель:
# 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)
  1. Генерируем миграцию:
alembic revision --autogenerate -m "Add book table"
  1. Содержимое сгенерированного файла в 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")
  1. Применяем изменения к базе:
alembic upgrade head

Команды выполняются из каталога backend/.