Skip to content

Instantly share code, notes, and snippets.

@daaniam
Created April 13, 2023 06:08
Show Gist options
  • Save daaniam/91ff3176573e8178add1d13d61636490 to your computer and use it in GitHub Desktop.
Save daaniam/91ff3176573e8178add1d13d61636490 to your computer and use it in GitHub Desktop.
Pydantic schema from SQLAlchemy model (inheritance)
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from pydantic.dataclasses import dataclass

# Create engine and session
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()

# Define declarative base
Base = declarative_base()

# Define SQLAlchemy model
class MyTable(Base):
    __tablename__ = 'my_table'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# Define Pydantic model using the dataclass decorator
@dataclass
class MyTableSchema(MyTable):
    pass

# Use Pydantic model to validate and serialize data
data = {'id': 1, 'name': 'John', 'age': 30}
schema = MyTableSchema(**data)
print(schema.dict())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment