Database Operations

RouteMQ provides async database operations through the Model base class and SQLAlchemy sessions.

Basic CRUD Operations

Create Operations

Using Model.create()

from core.model import Model
from app.models.sensor_reading import SensorReading

# Create a new sensor reading
reading = await Model.create(
    SensorReading,
    sensor_id="temp_001",
    sensor_type="temperature",
    value=25.6,
    unit="celsius",
    timestamp=time.time()
)

print(f"Created reading with ID: {reading.id}")

Using Session Directly

Bulk Create

Read Operations

Using Model.find()

Using Model.all()

Custom Queries with Sessions

Complex Queries

Update Operations

Single Record Update

Bulk Update

Update with Conditions

Delete Operations

Single Record Delete

Bulk Delete

Working with Relationships

Transaction Management

Manual Transaction Control

Using Context Managers

Query Optimization

Pagination

Efficient Filtering

Using in Controllers

Controller Integration

Error Handling

Database Connection Errors

Handling Constraint Violations

Performance Best Practices

Connection Pooling

Batch Operations

Next Steps

Last updated