Create & model
Add a column
Evolve a live table's schema by adding a column - existing rows get NULL.
Add columns to a live table without downtime. Existing rows get NULL for the
new column, so a newly added column must be nullable (or backfilled before you
make it required).
Inspect the schema first
Read the current state before changing it - so you don't re-add an existing column, and you know which constraints might reject your change:
eddytor describe table eddytor sales orders # schema, columns, constraintsget_table_schema(table="eddytor.cfg_xxx.<uuid>_orders") # columns, Arrow types, nullability
get_table_metadata(table="eddytor.cfg_xxx.<uuid>_orders") # constraints, PKs, current versionAdd
eddytor create column eddytor sales orders --schema-file ./new-columns.jsonThe JSON file describes the new column(s) - the same shape as the MCP columns
array below.
{ "table": "eddytor.cfg_xxx.<uuid>_products", "columns": [
{ "name": "weight_kg", "data_type": "Float64", "nullable": true }
]}After adding
get_table_schema- confirm the column applied.validate_constraints- existing data still passes.
To make the new column required later, backfill it first (e.g. via
merge_rows), then set
is_nullable: false - which is rejected if any NULLs remain.
Good to know
Schema evolution follows Delta Lake conventions and is
recorded as a new version
(
ADD COLUMN). Pick types deliberately - see
column types.