alembic revision --autogenerate работает успешно, но папка с ревизиями остается пустой

У меня проект на FastAPI. Собираю его через Docker-compose. Структура такая:

projectfolder
   |-/frontend
   |     |-...
   |-/backend
   |     |-/alembic
   |     |     |-/versions
   |     |     |-env.py
   |     |-alembic.ini
   |     |-Dockerfile
   |     |-...
   |-docker-compose.yml
   |-...

Я успешно запускаю docker-compose build. Файл docker-compose:

version: "3.9"
services:

  db:
    image: library/postgres:latest
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=test_db

  api:
    build:
      context: .
      dockerfile: backend/Dockerfile
    command: bash -c "uvicorn run:app --host 0.0.0.0 --port 8000"
    ports:
      - "8000:8000"
    depends_on:
      - db

После этого так же успешно docker-compose run api alembic revision --autogenerate -m "First migration":

Creating sf_api_run ... done
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.autogenerate.compare] Detected added table 'users'
INFO  [alembic.autogenerate.compare] Detected added index 'ix_users_id' on '['id']'
  Generating /app/alembic/versions/378174511560_first_migration.py ...  done

Но папка versions остается пустой, т.е. файл для миграции туда не добавляется.

Пустая папка versions

Подскажите, почему так получается? Возможно путаница в путях фактически до папки с миграциями и пути, которое по дефолту использует alembic? Я запутался


Ответы (1 шт):

Автор решения: asanisimov

Он собирает миграции внутри контейнера. Вам надо добавить volumes. документация

→ Ссылка