Skip to content

v0.2-alpha

Choose a tag to compare

@DerTraurigeHund DerTraurigeHund released this 03 Jun 10:19
· 3 commits to main since this release
71bf4dc

Neu:

• bulk_create(table, list_of_dicts)
Ermöglicht das Einfügen vieler Datensätze in einem einzigen INSERT, statt jede Zeile einzeln zu schreiben.

• update_by_conditions(table, updates: dict, **conditions)
Führt ein UPDATE auf alle Zeilen aus, die den angegebenen Bedingungen genügen (ähnlich zu find_ids, aber mit SET).

• delete_by_conditions(table, **conditions)
Löscht alle Zeilen anhand von WHERE-Kriterien, ohne sie vorher als Objekte zu instanziieren.

• get_all(table, **conditions) → List[DynamicModel]
Liefert direkt eine Liste von Model-Instanzen mit optionalen Filterkriterien, z. B. get_all("users", active="true").

• paginate(table, page: int, per_page: int, **conditions)
Kombiniert WHERE, LIMIT und OFFSET und gibt die IDs oder Instanzen zurück.

• count(table, *conditions) → int
Zählt Zeilen (SELECT COUNT()…), optional mit WHERE-Bedingungen.

• exists(table, **conditions) → bool
Prüft, ob mindestens eine Zeile die Bedingungen erfüllt.

• order_by(table, *columns, asc=True, **conditions)
Erweitert get_all oder find_ids um eine ORDER-BY-Klausel.

• transaction(ctx_callable)
Erlaubt es, mehrere Änderungen in einer einzigen Transaktion zusammenzufassen (mit Rollback bei Fehler).

• raw_query(sql_string, params)
Macht eigene, frei formatierte Abfragen möglich, wenn das ORM mal nicht ausreicht.

• add_index(table, column: str, unique=False)
Legt einen Index oder Unique-Constraint an, um Abfragen zu beschleunigen.

• drop_column(table, column: str)
Entfernt eine Spalte wieder (gegenüber dem bereits vorhandenen ADD COLUMN).

• rename_column(table, old: str, new: str)
Erlaubt das Umbenennen von Spalten.

• inspect_schema(table) → Dict[str, dict]
Gibt zu jeder Spalte Metadaten zurück (Typ, Default, nullable etc.), um Validierungen vor der Laufzeit zu ermöglichen.

• relationship(one: str, many: str, fk: str)
Definiert Verknüpfungen zwischen Tabellen („Has-Many“ / „Belongs-To“) und sorgt für automatisches Join-Fetching.

• before_insert / after_insert hooks
Callback-Mechanismus, um z. B. automatisch Timestamps zu setzen oder Eingaben zu validieren.

• soft_delete(table, **conditions)
Setzt statt Löschen ein „deleted_at“-Feld oder Boolean-Flag, um Datenbank-Historie zu bewahren.

• schema_migration(tooling)
Ermöglicht versionierte Migrationen (Up / Down), um Spalten hinzuzufügen/zu ändern/anpassen.

• connection_pooling(minconn, maxconn)
Verwaltet einen Pool von Verbindungen anstelle einer Einzelverbindung, um Performance in Mehrbenutzer-Szenarien zu optimieren.

• support für andere Dialekte (SQLite, MySQL)
Abstrahiert SQL-Dialekt-Unterschiede, damit das Tool nicht nur auf Postgres limitiert ist.