doc: add roadmap to readme
Some checks failed
CI / tests (push) Failing after 2m15s

This commit is contained in:
Lucien Cartier-Tilet 2025-06-04 22:15:38 +02:00
parent cf7660c505
commit 4e7a236b72
Signed by: phundrak
SSH Key Fingerprint: SHA256:CE0HPsbW3L2YiJETx1zYZ2muMptaAqTN2g3498KrMkc

View File

@ -152,3 +152,46 @@ pub struct Book {
To read more about these features, you can refer to the [online
documentation](https://docs.rs/georm/).
## Roadmap / TODO
The following features are being considered for future development:
### High Priority
- **Transaction Support**: Add comprehensive transaction support with
transaction-aware CRUD methods and relationship handling for atomic
operations across multiple entities
- **Race Condition Fix**: Replace the current `create_or_update`
implementation with database-specific UPSERT operations (PostgreSQL
`ON CONFLICT`, MySQL `ON DUPLICATE KEY UPDATE`, SQLite `ON
CONFLICT`) to prevent race conditions
### Medium Priority
- **Multi-Database Support**: Extend Georm to support MySQL and SQLite
in addition to PostgreSQL, with database-specific optimizations and
dialect handling
- **Relationship Optimization**: Implement eager loading and N+1 query
prevention with circular dependency protection to dramatically
improve performance when working with related entities
- **Composite Primary Keys**: Add support for entities with multiple
primary key fields using auto-generated ID structs and type-safe
composite key handling
- **Soft Delete**: Implement optional soft delete functionality with
`deleted_at` timestamps, allowing entities to be marked as deleted
without physical removal
### Lower Priority
- **Migration Support**: Add optional migration utilities that
leverage SQLx's existing infrastructure for schema generation,
verification, and evolution
- **Enhanced Error Handling**: Consider implementing custom error
types with better categorization and operation context while
maintaining compatibility with SQLx errors
- **Many-to-Many Relationship Improvements**: Add direct methods to
add or remove items from many-to-many relationships without manually
handling the join table
### Recently Completed
- ✅ **Defaultable Fields**: Support for fields with database defaults
or auto-generated values, creating companion structs with optional
fields for easier entity creation