"Алембское течение" и "алембская история" ищут разные пути? - PullRequest
1 голос
/ 12 июня 2019

Я использую Alembic с SQLAlchemy для миграции схемы и миграции данных .

Поскольку я сохранил зависящие от миграции зависимости в их собственном модуле в главном приложении моего проекта myapp (согласно рекомендация Майкла Байера ), я столкнулся с ModuleNotFoundError s при запуске alembic current и alembic history.

Как предложил здесь , я добавил каталог репозитория project в мой системный путь, добавив следующее к env.py.

# Add project to path.
sys.path.append(os.getcwd())

Это исправляет ModuleNotFoundError для alembic current, , но не alembic history.

Почему эти две команды дают разные результаты?


Структура хранилища:

project
│   alembic.ini
│   db.sqlite
│
├───alembic
│   │   env.py
│   │   README
│   │   script.py.mako
│   │
│   └───versions
│           2b939015022a_create_athlete_table.py
│           3649f2977ae1_migrate_athletes_to_star_athletes.py
│
└───myapp
    └───migrations
            star_athlete.py

Скрипт миграции:

"""migrate athletes to star_athletes

Revision ID: 3649f2977ae1
Revises: 2b939015022a
Create Date: 2019-06-12 09:46:16.173048

"""
from alembic import op
import sqlalchemy as sa

# This line causes ModuleNotFoundError
from myapp.migrations.star_athlete import StarAthlete


# revision identifiers, used by Alembic.
revision = '3649f2977ae1'
down_revision = '2b939015022a'
branch_labels = None
depends_on = None


def upgrade():
    print('upgrading...')


def downgrade():
    print('downgrading...')
...