Add requirements.txt and guard app model imports in env.py
requirements.txt copied from shared_lib for Docker build compatibility. Alembic env.py now uses try/except for app-specific model imports so upgrade head works in Docker where only one app's code is present. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,10 +19,11 @@ from shared.db.base import Base
|
|||||||
|
|
||||||
# Import ALL models so Base.metadata sees every table
|
# Import ALL models so Base.metadata sees every table
|
||||||
import shared.models # noqa: F401 User, KV, MagicLink, MenuItem, Ghost*
|
import shared.models # noqa: F401 User, KV, MagicLink, MenuItem, Ghost*
|
||||||
import blog.models # noqa: F401 Post, Author, Tag, Snippet, TagGroup
|
for _mod in ("blog.models", "market.models", "cart.models", "events.models"):
|
||||||
import market.models # noqa: F401 Product, CartItem, MarketPlace, etc.
|
try:
|
||||||
import cart.models # noqa: F401 Order, OrderItem, PageConfig
|
__import__(_mod)
|
||||||
import events.models # noqa: F401 Calendar, CalendarEntry, Ticket, etc.
|
except ImportError:
|
||||||
|
pass # OK in Docker — only needed for autogenerate
|
||||||
|
|
||||||
target_metadata = Base.metadata
|
target_metadata = Base.metadata
|
||||||
|
|
||||||
|
|||||||
47
requirements.txt
Normal file
47
requirements.txt
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
starlette>=0.37,<0.39
|
||||||
|
aiofiles==25.1.0
|
||||||
|
aiosmtplib==5.0.0
|
||||||
|
alembic==1.17.0
|
||||||
|
anyio==4.11.0
|
||||||
|
async-timeout==5.0.1
|
||||||
|
asyncpg==0.30.0
|
||||||
|
beautifulsoup4==4.14.2
|
||||||
|
blinker==1.9.0
|
||||||
|
Brotli==1.1.0
|
||||||
|
certifi==2025.10.5
|
||||||
|
click==8.3.0
|
||||||
|
exceptiongroup==1.3.0
|
||||||
|
Flask==3.1.2
|
||||||
|
greenlet==3.2.4
|
||||||
|
h11==0.16.0
|
||||||
|
h2==4.3.0
|
||||||
|
hpack==4.1.0
|
||||||
|
httpcore==1.0.9
|
||||||
|
httpx==0.28.1
|
||||||
|
Hypercorn==0.17.3
|
||||||
|
hyperframe==6.1.0
|
||||||
|
idna==3.10
|
||||||
|
itsdangerous==2.2.0
|
||||||
|
Jinja2==3.1.6
|
||||||
|
lxml==6.0.2
|
||||||
|
Mako==1.3.10
|
||||||
|
MarkupSafe==3.0.3
|
||||||
|
priority==2.0.0
|
||||||
|
psycopg==3.2.11
|
||||||
|
psycopg-binary==3.2.11
|
||||||
|
PyJWT==2.10.1
|
||||||
|
PyYAML==6.0.3
|
||||||
|
Quart==0.20.0
|
||||||
|
sniffio==1.3.1
|
||||||
|
soupsieve==2.8
|
||||||
|
SQLAlchemy==2.0.44
|
||||||
|
taskgroup==0.2.2
|
||||||
|
tomli==2.3.0
|
||||||
|
typing_extensions==4.15.0
|
||||||
|
Werkzeug==3.1.3
|
||||||
|
wsproto==1.2.0
|
||||||
|
zstandard==0.25.0
|
||||||
|
redis>=5.0
|
||||||
|
mistune>=3.0
|
||||||
|
pytest>=8.0
|
||||||
|
pytest-asyncio>=0.23
|
||||||
Reference in New Issue
Block a user