Paste your CREATE TABLE statements and get SQLAlchemy declarative model classes — columns, primary keys, foreign keys, and relationship() attributes.
# Generated by ERD Factory - review relation/field names before use.
from sqlalchemy import Column, Boolean, DateTime, Integer, String, ForeignKey
from sqlalchemy.orm import declarative_base, relationship
Base = declarative_base()
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
email = Column(String, nullable=False)
full_name = Column(String)
created_at = Column(DateTime)
last_login_at = Column(DateTime)
class Orders(Base):
__tablename__ = "orders"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.id"))
status = Column(String, nullable=False)
total_cents = Column(Integer, nullable=False)
currency = Column(String)
placed_at = Column(DateTime)
shipped_at = Column(DateTime)
user = relationship("Users")
class OrderItems(Base):
__tablename__ = "order_items"
id = Column(Integer, primary_key=True, autoincrement=True)
order_id = Column(Integer, ForeignKey("orders.id"), unique=True)
product_id = Column(Integer, nullable=False)
quantity = Column(Integer, nullable=False)
order = relationship("Orders")
class Products(Base):
__tablename__ = "products"
id = Column(Integer, primary_key=True, autoincrement=True)
sku = Column(String, nullable=False)
name = Column(String, nullable=False)
price_cents = Column(Integer, nullable=False)
inventory_count = Column(Integer)
active = Column(Boolean)
class Payments(Base):
__tablename__ = "payments"
id = Column(Integer, primary_key=True, autoincrement=True)
order_id = Column(Integer, ForeignKey("orders.id"), unique=True)
amount_cents = Column(Integer, nullable=False)
method = Column(String, nullable=False)
processed_at = Column(DateTime)
order = relationship("Orders")
class Sessions(Base):
__tablename__ = "sessions"
id = Column(Integer, primary_key=True, autoincrement=True)
token = Column(String, nullable=False)
expires_at = Column(DateTime)
See these 6 tables as an interactive diagram, get AI-suggested fixes, and save your schema — free.
Open in the full editorPaste a schema and see your first analysis in under ten seconds.
Schema visualization & analysis for people who ship databases.