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 between Sales[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 refresh tool)

Prompt:

“List partitions for Sales. 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’ for Products[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 relationship Sales[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 hierarchy Geography 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 table Date 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_dependencies if 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)

ModeAvailability
Full modeAvailableAvailable
Read-only modeNot availableNot available
Browse-only modeNot availableNot available

Notes: Authoring (writes); bulk changes can partially apply; Desktop requires saving PBIX to persist.

Learn more about modes and restrictions.

If edits are blocked, ask:

“Explain what’s blocked (mode/policy/license) and propose a manual plan + validation queries.”

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.”

See also