You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Community ||[](https://discord.gg/litestar)[](https://matrix.to/#/#litestar:matrix.org)|
19
-
| Meta ||[](https://github.com/litestar-org/advanced-alchemy)[](https://github.com/python/mypy)[](https://spdx.org/licenses/)[](https://github.com/astral-sh/ruff)|
| Community ||[](https://discord.gg/litestar)[](https://matrix.to/#/#litestar:matrix.org)|
19
+
| Meta ||[](https://github.com/litestar-org/advanced-alchemy)[](https://github.com/python/mypy)[](https://spdx.org/licenses/)[](https://github.com/astral-sh/ruff)|
20
20
21
21
</div>
22
22
@@ -34,8 +34,8 @@ offering:
34
34
- Custom-built alembic configuration and CLI with optional framework integration
35
35
- Utility base classes with audit columns, primary keys and utility functions
36
36
- Built in `File Object` data type for storing objects:
37
-
- Unified interface for various storage backends ([`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/) and [`obstore`](https://developmentseed.org/obstore/latest/))
38
-
- Optional lifecycle event hooks integrated with SQLAlchemy's event system to automatically save and delete files as records are inserted, updated, or deleted.
37
+
- Unified interface for various storage backends ([`fsspec`](https://filesystem-spec.readthedocs.io/en/latest/) and [`obstore`](https://developmentseed.org/obstore/latest/))
38
+
- Optional lifecycle event hooks integrated with SQLAlchemy's event system to automatically save and delete files as records are inserted, updated, or deleted.
39
39
- Optimized JSON types including a custom JSON type for Oracle
40
40
- Integrated support for UUID6 and UUID7 using [`uuid-utils`](https://github.com/aminalaee/uuid-utils) (install with the `uuid` extra)
41
41
- Integrated support for Nano ID using [`fastnanoid`](https://github.com/oliverlambson/fastnanoid) (install with the `nanoid` extra)
@@ -44,18 +44,18 @@ offering:
44
44
- Pre-configured base classes with audit columns UUID or Big Integer primary keys and
45
45
a [sentinel column](https://docs.sqlalchemy.org/en/20/core/connections.html#configuring-sentinel-columns).
46
46
- Synchronous and asynchronous repositories featuring:
47
-
- Common CRUD operations for SQLAlchemy models
48
-
- Bulk inserts, updates, upserts, and deletes with dialect-specific enhancements
49
-
- Integrated counts, pagination, sorting, filtering with `LIKE`, `IN`, and dates before and/or after.
47
+
- Common CRUD operations for SQLAlchemy models
48
+
- Bulk inserts, updates, upserts, and deletes with dialect-specific enhancements
49
+
- Integrated counts, pagination, sorting, filtering with `LIKE`, `IN`, and dates before and/or after.
50
50
- Tested support for multiple database backends including:
51
-
- SQLite via [aiosqlite](https://aiosqlite.omnilib.dev/en/stable/) or [sqlite](https://docs.python.org/3/library/sqlite3.html)
52
-
- Postgres via [asyncpg](https://magicstack.github.io/asyncpg/current/) or [psycopg3 (async or sync)](https://www.psycopg.org/psycopg3/)
53
-
- MySQL via [asyncmy](https://github.com/long2ice/asyncmy)
54
-
- Oracle via [oracledb (async or sync)](https://oracle.github.io/python-oracledb/) (tested on 18c and 23c)
55
-
- Google Spanner via [spanner-sqlalchemy](https://github.com/googleapis/python-spanner-sqlalchemy/)
56
-
- DuckDB via [duckdb_engine](https://github.com/Mause/duckdb_engine)
57
-
- Microsoft SQL Server via [pyodbc](https://github.com/mkleehammer/pyodbc) or [aioodbc](https://github.com/aio-libs/aioodbc)
58
-
- CockroachDB via [sqlalchemy-cockroachdb (async or sync)](https://github.com/cockroachdb/sqlalchemy-cockroachdb)
51
+
- SQLite via [aiosqlite](https://aiosqlite.omnilib.dev/en/stable/) or [sqlite](https://docs.python.org/3/library/sqlite3.html)
52
+
- Postgres via [asyncpg](https://magicstack.github.io/asyncpg/current/) or [psycopg3 (async or sync)](https://www.psycopg.org/psycopg3/)
53
+
- MySQL via [asyncmy](https://github.com/long2ice/asyncmy)
54
+
- Oracle via [oracledb (async or sync)](https://oracle.github.io/python-oracledb/) (tested on 18c and 23c)
55
+
- Google Spanner via [spanner-sqlalchemy](https://github.com/googleapis/python-spanner-sqlalchemy/)
56
+
- DuckDB via [duckdb_engine](https://github.com/Mause/duckdb_engine)
57
+
- Microsoft SQL Server via [pyodbc](https://github.com/mkleehammer/pyodbc) or [aioodbc](https://github.com/aio-libs/aioodbc)
58
+
- CockroachDB via [sqlalchemy-cockroachdb (async or sync)](https://github.com/cockroachdb/sqlalchemy-cockroachdb)
59
59
- ...and much more
60
60
61
61
## Usage
@@ -73,7 +73,6 @@ pip install advanced-alchemy
73
73
74
74
Advanced Alchemy includes a set of asynchronous and synchronous repository classes for easy CRUD
75
75
operations on your SQLAlchemy models.
76
-
77
76
<!-- markdownlint-disable -->
78
77
<details>
79
78
<summary>Click to expand the example</summary>
@@ -139,7 +138,6 @@ For a full standalone example, see the sample [here][standalone-example]
139
138
Advanced Alchemy includes an additional service class to make working with a repository easier.
140
139
This class is designed to accept data as a dictionary or SQLAlchemy model,
141
140
and it will handle the type conversions for you.
142
-
143
141
<!-- markdownlint-disable -->
144
142
<details>
145
143
<summary>Here's the same example from above but using a service to create the data:</summary>
0 commit comments