From b0a3c616976d3522efcbc5ccd07dbf5f9cfe1867 Mon Sep 17 00:00:00 2001 From: Automated Action Date: Mon, 12 May 2025 14:58:36 +0000 Subject: [PATCH] Fix metadata attribute name conflict in Pool model --- app/models/pool.py | 2 +- app/schemas/pool.py | 6 +++--- check_schema.py | 20 ++++++++++++++++++++ migrations/versions/01_initial_tables.py | 2 +- 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 check_schema.py diff --git a/app/models/pool.py b/app/models/pool.py index a05f1da..9aa4f2a 100644 --- a/app/models/pool.py +++ b/app/models/pool.py @@ -31,7 +31,7 @@ class Pool(Base): fee_rate = Column(Float, nullable=True) # Pool fee percentage pool_type = Column(String, nullable=True) # Constant product, stable, etc. is_active = Column(Boolean, default=True, nullable=False) - metadata = Column(JSON, nullable=True) # Additional pool-specific data + pool_metadata = Column(JSON, nullable=True) # Additional pool-specific data created_at = Column(DateTime, default=datetime.utcnow, nullable=False) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) diff --git a/app/schemas/pool.py b/app/schemas/pool.py index 50dffa6..fa63622 100644 --- a/app/schemas/pool.py +++ b/app/schemas/pool.py @@ -23,7 +23,7 @@ class PoolBase(BaseModel): class PoolCreate(PoolBase): - metadata: Optional[Dict[str, Any]] = None + pool_metadata: Optional[Dict[str, Any]] = None class PoolUpdate(BaseModel): @@ -42,7 +42,7 @@ class PoolUpdate(BaseModel): fee_rate: Optional[float] = None pool_type: Optional[str] = None is_active: Optional[bool] = None - metadata: Optional[Dict[str, Any]] = None + pool_metadata: Optional[Dict[str, Any]] = None class PoolInDBBase(PoolBase): @@ -50,7 +50,7 @@ class PoolInDBBase(PoolBase): volume_24h: Optional[float] = None fees_24h: Optional[float] = None tvl: Optional[float] = None - metadata: Optional[Dict[str, Any]] = None + pool_metadata: Optional[Dict[str, Any]] = None created_at: datetime updated_at: datetime diff --git a/check_schema.py b/check_schema.py new file mode 100644 index 0000000..8c943c9 --- /dev/null +++ b/check_schema.py @@ -0,0 +1,20 @@ +import os +from sqlalchemy import inspect, create_engine, MetaData + +# Create path to DB +storage_dir = os.path.join(os.getcwd(), "storage", "db") +if not os.path.exists(storage_dir): + os.makedirs(storage_dir, exist_ok=True) + +# Connect to database +db_url = f"sqlite:///{storage_dir}/db.sqlite" +engine = create_engine(db_url, connect_args={"check_same_thread": False}) + +# Get inspector +inspector = inspect(engine) + +# Print schema +for table_name in inspector.get_table_names(): + print(f"\nTable: {table_name}") + for column in inspector.get_columns(table_name): + print(f" {column['name']}: {column['type']}") \ No newline at end of file diff --git a/migrations/versions/01_initial_tables.py b/migrations/versions/01_initial_tables.py index 48f64c1..dbf1738 100644 --- a/migrations/versions/01_initial_tables.py +++ b/migrations/versions/01_initial_tables.py @@ -107,7 +107,7 @@ def upgrade(): sa.Column('fee_rate', sa.Float(), nullable=True), sa.Column('pool_type', sa.String(), nullable=True), sa.Column('is_active', sa.Boolean(), nullable=False, default=True), - sa.Column('metadata', sa.JSON(), nullable=True), + sa.Column('pool_metadata', sa.JSON(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('updated_at', sa.DateTime(), nullable=False), sa.ForeignKeyConstraint(['dex_id'], ['dex.id'], ),