Вот структура папок проекта:
Код: Выделить всё
app/
- api/
- core/
- __init__.py
- settings.py
- db/
- __init__.py
- database.py
Сначала я попытался создать папку миграции внутри db/< /code>, но безуспешно (та же ошибка, что и ниже). Поэтому я выполнил миграцию инициализации перегонного куба в корневой папке app/.
Теперь папка выглядит так:
Код: Выделить всё
app/
- api/
- core/
- __init__.py
- settings.py
- db/
- __init__.py
- database.py
- migrations/
- versions/
- env.py
- alembic.ini
Код: Выделить всё
from ..db.database import Base
from ..core.settings import settings
target_metadata = Base.metadata
def get_url():
return settings.db_url
Код: Выделить всё
alembic revision --autogenerate -m "init"Код: Выделить всё
python -m alembic.config revision --autogenerate -m "init"
Код: Выделить всё
...
from ..db.database import Base
ImportError: attempted relative import with no known parent package
Мои вопросы:
- Может быть, я мог бы разместить папку миграции за пределами приложения/ и изменить относительный импорт на app.db.database?
- это может работать для одного верхнего уровня приложение, но что делать, если у меня есть несколько подприложений (, app/subapps/sub2) и хотите управлять отдельным файлом sqlite для каждого подприложения?
Код: Выделить всё
app/subapps/sub1 - или, может быть, перегонный куб просто не тот правильный выбор для моего варианта использования?
Подробнее здесь: https://stackoverflow.com/questions/708 ... ted-folder
Мобильная версия