← All Releases
v0.2.10
RETRACT, PROPERLY
dvt retract grows up: dialect-correct drops on every engine, relations resolved exactly where the loader put them, bucket objects actually deleted, a --target override — and output that finally reads like dvt run.
ADDED
- ▸Object-store targets are retracted for real: the file the loader wrote (model.parquet, model.csv, …) is deleted from S3, GCS, Azure, or the local filesystem — same fsspec drivers dvt sync installs for your profile, object_base-aware.
- ▸dvt retract --target: resolve default-target models against any output, exactly like dvt run --target — retract what you ran, wherever you ran it.
CHANGED
- ▸dvt retract speaks dbt: numbered START / OK / WARN / ERROR lines with per-relation timings and a Done summary — the same rhythm as dvt run, in reverse.
- ▸Drops resolve relations the way the loader landed them: on database-equals-schema engines (MySQL, MariaDB, Oracle, SQLite, ClickHouse) the relation lives in the connection's own database or user schema, and retract now drops it there instead of chasing a schema that never existed.
FIXED
- ▸Identifiers render unquoted, letting each engine apply native case resolution — quoted "schema"."name" drops were rejected outright by Databricks, MySQL/MariaDB, and Oracle.
- ▸Oracle gets its own DDL: no IF EXISTS pre-23c, and an ORA-00942 from every attempt counts as already-gone — retract is idempotent, not noisy.
Get it: pip install dvt-core==0.2.10 · wheels on PyPI for macOS (arm64 + x86_64) and Linux, Python 3.10–3.12.