- Build SQLAlchemy model instance with random data
- Save SQLAlchemy model instance with random data
- Build relationships
- Build minimal (with required fields) only
$ pip install sqlalchemy-model-builder
Deinfe the SQLAlchemy models:
from sqlalchemy import Integer, String, Text
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Address(Base):
__tablename__ = "addresses"
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey("users.id"))
user = relationship("User", back_populates="addresses")
class User(Base):
__tablename__ = "users"
addresses = relationship("Address", back_populates="user")
bio = Column(Text)
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
Save random model instance:
from sqlalchemy_model_builder import ModelBuilder
random_user = ModelBuilder(User).save(db)
Build random model without saving:
random_user = ModelBuilder(User).build()
Build minimal model instance:
minimal_random_user = ModelBuilder(User, minimal=True).build()
Build or save with specific values:
random_address = ModelBuilder(Address).build(user_id=1)
- BigInteger
- Boolean
- Date
- DateTime
- Enum
- Float
- Integer
- Interval
- LargeBinary
- MatchType (Todo)
- Numeric
- PickleType (Todo)
- SchemaType (Todo)
- SmallInteger
- String
- Text
- Time
- Unicode
- UnicodeText