Features and Roadmap
- Define table schema using Pydantic models
 -  Basic CRUD operations
- Save data to the database
 - Read data from the database
 - Update data in the database
 - Delete data from the database
 
 -  Relationships between tables
-  One-to-many
- Create a tables with a foreign key
 - Save data with a foreign key
 - Read data with a foreign key
 - Update data with a foreign key
 -  Delete data with a foreign key
- Cascade
 - Set null
 - Restrict
 - Set default
 - No action
 
 
 - One-to-one
 - Many-to-many
 
 -  One-to-many
 - Unique constraints
 - Remove table
 - Read all data from the database
 -  Filter data and retrieve multiple records
- Equal
 - Not equal
 - Greater than
 - Greater than or equal
 - Less than
 - Less than or equal
 - Like (Pattern matching with % and _)
 - Not like (Pattern matching with % and _)
 - In (List of values)
 - Not in (List of values)
 - Between (Two values)
 - Not between (Two values)
 - Q objects to combine filters (AND, OR, NOT)
 
 - Protect against SQL injection
 - Order by
 - Limit and offset
 -  Update table schema
- Add new column
 - Rename column
 - Drop column
 
 - Custom primary key
 - Transactions
 -  Integration with databases
- SQLite
 - PostgreSQL
 - MySQL
 
 -  Functions
- Aggregate functions
 - String functions
 - Date and time functions
 - Mathematical functions
 - Control flow functions
 
 - Migrations