Forum Discussion
Unable to update schema in semantic model
- 7 months ago
AI response:
What you’re seeing is by design, but it’s poorly documented.
I’ll break it down cleanly and then tell you exactly how to add those columns.
The core reason (TL;DR)
You deployed a metadata-only / external semantic model into Fabric.
Once a semantic model is:
- Compatibility level 1600
- Data Source Version V3
- Deployed via Tabular Editor / XMLA
👉 Power BI Desktop no longer owns the model schema
👉 Power Query does not exist
👉 “Refresh > Schema” is permanently disabledSo:
- ❌ Desktop cannot refresh schema
- ❌ Service UI cannot refresh schema
- ❌ There is no “Get Data / Transform Data” layer anymore
This is expected behavior for XMLA-authored models.
Why your Tabular Editor change didn’t surface the columns
This is the subtle but critical part:
Editing the SQL text in a partition does NOT update column metadata
In tabular models:
- Columns are metadata objects
- Partitions only define how data is loaded
- Adding columns to SQL ≠ adding columns to the model
So when you:
updated the SQL to include two new columns
The engine happily loads them internally, but:
- The model does not know those columns exist
- They are not materialized as Table.Columns[]
- Power BI will never show them
Why “Refresh Metadata” doesn’t exist
In SSAS / Fabric semantic models:
- There is no automatic schema discovery
- Metadata refresh is not supported
- Schema changes must be explicit
This is different from:
- Import-mode PBIX
- Power Query–based datasets
The correct way to add columns (this WILL work)
You must explicitly add the columns in Tabular Editor.
Option A — Add columns manually (recommended & safest)
- Open the model in Tabular Editor
- Expand the table
- Right-click Columns → Create New → Column
- Set:
- Name
- Data Type
- Source Column (must match SQL column name exactly)
- Save
- Deploy back to the Fabric workspace
- Run a data refresh
✅ Columns will appear immediately
Option B — Recreate the table metadata (faster but riskier)
Only do this if the table is simple.
- Script out:
- Measures
- Relationships
- Sort-by columns
- Delete the table
- Recreate the table from scratch with updated SQL
- Reattach measures/relationships
- Deploy
Easy to break dependencies — use carefully.
AI response:
What you’re seeing is by design, but it’s poorly documented.
I’ll break it down cleanly and then tell you exactly how to add those columns.
The core reason (TL;DR)
You deployed a metadata-only / external semantic model into Fabric.
Once a semantic model is:
- Compatibility level 1600
- Data Source Version V3
- Deployed via Tabular Editor / XMLA
👉 Power BI Desktop no longer owns the model schema
👉 Power Query does not exist
👉 “Refresh > Schema” is permanently disabled
So:
- ❌ Desktop cannot refresh schema
- ❌ Service UI cannot refresh schema
- ❌ There is no “Get Data / Transform Data” layer anymore
This is expected behavior for XMLA-authored models.
Why your Tabular Editor change didn’t surface the columns
This is the subtle but critical part:
Editing the SQL text in a partition does NOT update column metadata
In tabular models:
- Columns are metadata objects
- Partitions only define how data is loaded
- Adding columns to SQL ≠ adding columns to the model
So when you:
updated the SQL to include two new columns
The engine happily loads them internally, but:
- The model does not know those columns exist
- They are not materialized as Table.Columns[]
- Power BI will never show them
Why “Refresh Metadata” doesn’t exist
In SSAS / Fabric semantic models:
- There is no automatic schema discovery
- Metadata refresh is not supported
- Schema changes must be explicit
This is different from:
- Import-mode PBIX
- Power Query–based datasets
The correct way to add columns (this WILL work)
You must explicitly add the columns in Tabular Editor.
Option A — Add columns manually (recommended & safest)
- Open the model in Tabular Editor
- Expand the table
- Right-click Columns → Create New → Column
- Set:
- Name
- Data Type
- Source Column (must match SQL column name exactly)
- Save
- Deploy back to the Fabric workspace
- Run a data refresh
✅ Columns will appear immediately
Option B — Recreate the table metadata (faster but riskier)
Only do this if the table is simple.
- Script out:
- Measures
- Relationships
- Sort-by columns
- Delete the table
- Recreate the table from scratch with updated SQL
- Reattach measures/relationships
- Deploy
Easy to break dependencies — use carefully.
Thanks for the information!