rhosocial-activerecord-mysql ($\rho_{\mathbf{AR}\text{-mysql}}$)

MySQL backend implementation for rhosocial-activerecord, providing a robust and optimized MySQL database support.
Overview
This package provides MySQL backend support for the rhosocial-activerecord ORM framework. It enables seamless integration with MySQL databases while leveraging all the features of the ActiveRecord pattern implementation.
Note: This is a backend implementation only and requires the main rhosocial-activerecord package to function properly.
Features
This project is still under development and features are subject to change. Please stay tuned for the latest changes.
- 🚀 Optimized MySQL-specific query generation
- 🔒 Full support for MySQL's unique features
- 📦 Connection pooling support (optional)
- 🔄 Comprehensive transaction management
- 🔍 Advanced query capabilities specific to MySQL
- 🔌 Simple configuration and setup
Requirements
- Python 3.8+
- rhosocial-activerecord 1.0.0+
- mysql-connector-python 9.0.0+
Installation
pip install rhosocial-activerecord-mysql
Important: This package is a MySQL backend implementation for rhosocial-activerecord and cannot work independently. You must install and use it together with the main package.
For detailed usage of the main ActiveRecord framework, please refer to the rhosocial-activerecord documentation.
Usage
from rhosocial.activerecord.model import ActiveRecord
from rhosocial.activerecord.backend.impl.mysql.backend import MySQLBackend
from rhosocial.activerecord.backend.typing import ConnectionConfig
from datetime import datetime
from typing import Optional
class User(ActiveRecord):
__table_name__ = 'users'
id: int
name: str
email: str
created_at: datetime
deleted_at: Optional[datetime] = None
User.configure(
ConnectionConfig(
host='localhost',
port=3306,
database='myapp',
user='dbuser',
password='dbpassword'
),
backend_class=MySQLBackend
)
User.create_table_if_not_exists()
user = User(name='John Doe', email='john@example.com', created_at=datetime.now())
user.save()
active_users = User.query() \
.where('deleted_at IS NULL') \
.order_by('created_at DESC') \
.all()
user.name = 'Jane Doe'
user.save()
user.delete()
Advanced MySQL Features
This backend supports MySQL-specific features and optimizations:
results = User.query() \
.where('MATCH(name, email) AGAINST(? IN BOOLEAN MODE)', ('+John -Doe', )) \
.all()
results = User.query() \
.where('settings->>"$.notifications" = ?', ('enabled', )) \
.all()
User.batch_insert_or_update([user1, user2, user3])
Documentation
Complete documentation is available at python-activerecord MySQL Backend
Contributing
We welcome and value all forms of contributions! For details on how to contribute, please see our Contributing Guide.
License

Copyright © 2025 vistart