Reply to /u/onlinepersona SQLAlchemy crocodile tears.
Really need a layer between SQLAlchemy and FastAPI (or litestar, ...). Otherwise would be messing around with SQLAlchemy/alembic internals for years. SQLAlchemy is an incredible time sink without that additional layer.
Created just such a package just never got around to publishing it:
- static type checking throughout
- sync and async support throughout
- alembic support (both async and sync)
- multiple databases. One per config file!
- model built from dotted path of (sqlmodel and sqla mixins) components module
- UDF (user defined functions)
- database settings (PRAGMA, SHOW, SET, ...)
- sqlite-[pysqlite|sqlcipher|aiosqlite] and postgresql-[psycopg2|asyncpg] supported
- config does not store the password
Issues:
- retire sqlite-sqlcipher PRAGMA rekey and key. Password in config unsafe
- authentication by pulling from a password manager not implemented
- strict validation of postgresql SHOW/SET keys incomplete