CentauroDB Logo
What's NewLatest: v0.9.0

Changelog

Every feature, fix, and improvement shipped in CentauroDB — from day one to latest.

v0.9.0

First Public Release

CentauroDB lands on PyPI: Pydantic-native, zero-migration persistence on SQLite and PostgreSQL, published under MIT for Python 3.11+. The SQLite path is ready for real workloads; PostgreSQL runs the same API on a single connection while pooling is in the works.
Published on PyPI: pip install centaurodb (Python 3.11+, MIT)
count_objects() and aggregate(count=True) for totals without materializing rows
limit / offset pagination on read_objects()
parent_ref(on_delete="restrict"): deleting a parent with children now raises ParentHasChildrenError instead of orphaning rows
register_backend() and engine.async_safety for pluggable backends
PostgreSQL integration tests in CI; fully type-hinted (py.typed)
Pre-release internal history — never published to PyPI
v0.5.0

Raw SQL Escape Hatches & Deletion API

Full CRUD coverage with delete methods, raw SQL queries via sql_select() and sql_execute(), read_latest_object() with conditions, and async parity across the board.
read_latest_object() with conditions and aggregates
sql_select() and sql_execute() for raw SQL escape hatches
delete_object() / delete_objects() methods
Improved index workflow
Async collection methods at parity with sync API
v0.4.0

Query API & Relationships

Powerful AND/OR query conditions on JSON fields, selective field projection in views, index support on views and tables, and 1-to-many relationships between collections.
Query API with AND/OR conditions on JSON fields
Selective field projection in views
Index support on both views and tables
1-to-many relationships between collections
v0.3.0

Async & PostgreSQL Support

AsyncCollection and AsyncTimeSeriesCollection wrappers, PostgreSQL backend via Engine URL dispatch, dialect system for backend-agnostic SQL, and batch DataFrame validation.
AsyncCollection and AsyncTimeSeriesCollection wrappers
PostgreSQL backend via Engine URL dispatch
Dialect system: SQLiteDialect / PostgresDialect
Batch DataFrame validation for time-series
v0.2.0

Views, Time Series & Zero-Migration DX

SQL views with JSON field extraction, full TimeSeriesCollection with Polars DataFrames, refresh() workflow, and backward-compatible field renames via renamed_from().
create_view() with JSON field extraction and expression indexes
Full TimeSeriesCollection with Polars DataFrame support
refresh() workflow to re-read objects from DB
renamed_from() for safe field renames
Backward compatibility guardrails
v0.1.0

Initial Release

Engine and Collection with SQLite backend, CentauroModel based on Pydantic v2, core CRUD workflow, BaseCollection/TimeSeriesCollection split, and custom exception hierarchy.
Engine and Collection with SQLite backend
CentauroModel based on Pydantic v2
write_object(), read_object(), update_object() CRUD
Custom exceptions for persistence tracking

Want to see what's coming next?

Star on GitHub