fix(trade-dashboard): fix import errors and alembic migration

- database.py: remove dead pre-definition of DATABASE_URL with
  undefined db_user/db_pass variables
- models.py: add missing Table import from sqlalchemy
- alembic/env.py: replace deprecated run_async() with asyncio.run()
  (removed in SQLAlchemy 2.0)
- alembic 001_initial: use raw SQL for CREATE TYPE instead of
  op.create_enum() which requires alembic_postgresql_enum

Migration 001_initial successfully applied to trading_data DB.
This commit is contained in:
sirius0xdev 2026-05-02 22:44:38 +00:00
parent 6599249d65
commit 23c7c707d8
4 changed files with 8 additions and 16 deletions

View file

@ -54,8 +54,9 @@ async def run_migrations_online() -> None:
await connectable.dispose() await connectable.dispose()
import asyncio
if context.is_offline_mode(): if context.is_offline_mode():
run_migrations_offline() run_migrations_offline()
else: else:
from sqlalchemy.ext.asyncio import run_async # noqa: E402 asyncio.run(run_migrations_online())
run_async(run_migrations_online())

View file

@ -15,7 +15,7 @@ depends_on = None
def upgrade() -> None: def upgrade() -> None:
op.create_enum("position_direction", "long", "short", schema="public", create_type=True) op.execute('CREATE TYPE position_direction AS ENUM (\'long\', \'short\')')
op.create_table( op.create_table(
"positions", "positions",

View file

@ -1,17 +1,8 @@
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from sqlalchemy import MetaData
# Connection to hermes-pgdb CNPG cluster
DATABASE_URL = (
f"postgresql+asyncpg://{db_user}:{db_pass}"
f"@hermes-pgdb-rw.customer1.svc.cluster.local:5432/trading_data"
).format(
db_user="trading",
db_pass="TRADING_DB_PASSWORD", # overridden by env
)
import os import os
from sqlalchemy import MetaData
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
DB_USER = os.getenv("DB_USER", "trading") DB_USER = os.getenv("DB_USER", "trading")
DB_PASS = os.getenv("DB_PASSWORD", "") DB_PASS = os.getenv("DB_PASSWORD", "")
DB_HOST = os.getenv("DB_HOST", "hermes-pgdb-rw.customer1.svc.cluster.local") DB_HOST = os.getenv("DB_HOST", "hermes-pgdb-rw.customer1.svc.cluster.local")

View file

@ -1,4 +1,4 @@
from sqlalchemy import Column, String, Numeric, Enum, DateTime, JSON, func from sqlalchemy import Column, String, Numeric, Enum, DateTime, JSON, func, Table
from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.dialects.postgresql import UUID
import uuid import uuid