Schema Management
manage_schema changes the shape of the model: tables, partitions, columns, relationships, hierarchies, and calendars.
Use it when you need to modify structure (tables/relationships/partitions), not just DAX logic (that’s manage_semantic).
You don’t need to know tool parameters-ask the assistant for a plan + impact analysis first; it should only apply schema changes when your environment allows writes and you confirm.
What to ask the LLM (quick prompts)
“Add a relationship betweenSales[CustomerId] and Customers[CustomerId]. Explain cardinality and filter direction before applying.”
“Hide Customers[Email], add a description explaining why, and confirm nothing depends on it.”
“Update the partition expression for table Sales_Staging (show current and proposed; don’t apply until I confirm).”
“Mark table Date as a date table and set the primary date column.”
“Create a hierarchy Geography in Customers (Country → Region → City).”
What you can change (capabilities, user view)
Tables
Common table-level changes:
- create/delete tables (with initial partition)
- rename, hide/unhide, descriptions
- mark as date table (and choose date column)
- partition mode (import/directquery/dual, where supported)
- refresh policies (incremental patterns)
- annotations (key/value metadata)
Partitions (per table)
Partitions control how tables are loaded and processed. Typical asks:
- list partitions and their types (M vs calculated vs query/entity)
- update partition expressions
- create/delete partitions (advanced)
- refresh a partition (or use the
refreshtool)
Prompt:
“List partitions forSales. Summarize which are M vs calculated and which ones are safe to edit.”
Columns (properties + calculated columns)
Common column edits:
- rename, hide/unhide, descriptions
- format strings and data categories
- display folders (for usability)
- summarize-by settings
- sort-by column
- annotations
Calculated columns:
- create/update/delete calculated columns (use sparingly; they increase model size and can impact refresh/perf)
Prompt:
“Set ‘Sort by column’ forProducts[ProductName] to Products[ProductSort] (confirm both exist first).”
Relationships
You can create/update/delete relationships and tune:
- cardinality (one-to-many, many-to-one, etc.)
- cross-filter direction
- active vs inactive
- referential integrity hint (where supported)
Prompt:
“Create relationshipSales[CustomerId] → Customers[CustomerId]. Explain the modeling tradeoffs and confirm it won’t create ambiguous filter paths.”
Hierarchies
Hierarchies make models easier to browse and slice by. You can:
- create/update/delete hierarchies
- add/remove/reorder levels
- hide, set folder, add description
Prompt:
“Create hierarchyGeography in Customers: Country → Region → City. Put it in folder Customers\\Geography.”
Calendars
Calendar helpers can be created for date tables to support consistent time intelligence metadata. From a user perspective, the assistant can:
- create/delete/rename a calendar definition,
- add or remove time units (for example Year/Quarter/Month/Week),
- add or remove related groups used for calendar organization.
Prompt:
“Create a calendar for tableDate and confirm it’s configured correctly for time intelligence.”
Safety tips (schema edits are high impact)
- Always run impact analysis before rename/delete (use
manage_dependenciesif available). - Apply changes in small batches and validate after each batch.
- Consider using checkpoints/history tooling (Pro) before large refactors.
For the full “impact → plan → apply → validate” pattern, use: Change safely.
Risk & governance notes (read this once)
Locked-down environments (mode behavior)
| Mode | Availability |
|---|---|
| Full mode | AvailableAvailable |
| Read-only mode | Not availableNot available |
| Browse-only mode | Not availableNot available |
Notes: Authoring (writes); bulk changes can partially apply; Desktop requires saving PBIX to persist.
If edits are blocked, ask:
“Explain what’s blocked (mode/policy/license) and propose a manual plan + validation queries.”Recommended workflow (safe schema edits)
Copy/paste prompt:
“We need to add a relationship between Sales and Customers. First show current relationships and any ambiguities. Then propose the relationship definition. Wait for my confirmation before applying.”Tip: for bulk edits, dry runs, and “wait for confirmation” templates, see: Change safely.
Formatting (DAX / M)
Some schema operations can format expressions for readability (for example, calculated tables/columns or M partitions). DAX formatting runs locally. M formatting uses an online formatter, requires explicit consent, and may be centrally disabled.
User prompts:
“Do not use online M formatting services in this environment.” “Format DAX locally if useful. If you want to format M, ask me first and tell me which external service would be used.”“Disable online M formatting in this environment.” (see Preferences runtime settings)
Troubleshooting
Ask the assistant to explain the modeling tradeoffs and highlight ambiguous paths before choosing.
Ask: “Show the current partition definition and the exact error, then propose a minimal fix.”
Ask: “Reload metadata and confirm the object exists/changed.”