Back to blog
PrimentraPrimentra
·July 25, 2026·10 min read

How to get your data out of MDS before you lose access to it

Home/Blog/How to get your data out of MDS before you lose access to it
MDSModelDeploy.exe createpackage −includedata
IN THE PACKAGE
Entities
Attributes
Attribute groups
Hierarchies
Collections
Business rules
Subscription views
LEFT BEHIND
×User & group permissions
×File attributes
×Who reads your views
×Transaction history
×Notification config
The .pkg file is not a backup of your implementation. It is a backup of half of it.

To export from Master Data Services you use MDSModelDeploy.exe, the command-line tool on the MDS server. Run createpackage with -includedata and you get a .pkg file holding entities, attributes, attribute groups, hierarchies, collections, business rules, version flags and subscription views. What you do not get is your permissions, your file attributes, or any record of which downstream systems depend on what.

That distinction matters more than it sounds. Teams run the export, see a healthy-looking package, and conclude their implementation is safely captured. Then they rebuild elsewhere and spend weeks reconstructing a permission model nobody wrote down.

The export command

The tool lives on the MDS server, under the Configuration folder of the MDS installation. Run it from there, on the box — it is not a remote client.

MDSModelDeploy.exe createpackage
  -package  "C:\mds-export\Finance.pkg"
  -model    "Finance"
  -service  "MDS1"
  -version  "VERSION_1"
  -includedata

Drop -includedata and you get structure with no members — useful for moving a model shape between environments, useless as a migration artifact. Run it once per model. If you are not sure how many models you have, that is itself a finding worth writing down.

Worth knowing: packages are version-specific. A package built on one SQL Server release does not reliably import into a different one, which is precisely the situation you are in if you are exporting because of an upgrade. Treat the .pkg as an archive of record, not as your migration mechanism.

What the package quietly leaves behind

Permissions. User and group permissions are not in the deployment package. Everything you built across functional areas, model objects, and member-level access has to be recreated by hand. On a mature MDS install this is often the single largest undocumented asset you own. Screenshot the permission grids before you lose the web UI.

File attributes. Also excluded. If anyone attached documents to members, those attachments do not travel and need extracting separately.

Who consumes your subscription views. The view definitions are in the package. The knowledge of which ETL job, which ERP interface, and which report reads them is not, because MDS never held it. This is the item that causes go-live incidents, and the only way to build the list is to go looking before you cut over.

History. Transaction history and annotations stay in the MDS database. If you have a compliance reason to retain who changed what, plan to keep the database itself, or extract that history separately — the package will not carry it.

Take a flat SQL snapshot as well

The .pkg is a proprietary artifact that only MDS can open, which is an awkward property for a file whose job is to outlive MDS. Take a second export that anything can read. Subscription views are the right source: they were built to be consumed, they resolve codes and names properly, and they are plain views in the MDS database.

-- List every subscription view you have
SELECT  v.name AS ViewName, s.name AS SchemaName
FROM    sys.views v
JOIN    sys.schemas s ON s.schema_id = v.schema_id
WHERE   s.name = 'mdm'
ORDER BY v.name;

-- Then snapshot each one to a portable format
SELECT * FROM mdm.vw_Finance_CostCentre;

Write the results out as CSV and keep them beside the package. If a migration goes sideways two years from now, a CSV opens. A .pkg without a working MDS install does not.

A complete export, in order

  1. List your models and versions, and decide which version is the one of record.
  2. Run createpackage -includedata per model. Keep the packages somewhere that is backed up.
  3. Snapshot every subscription view to CSV.
  4. Capture the permission model by hand — screenshots or a written matrix, per functional area and per entity.
  5. Extract file attributes if anyone used them.
  6. Build the consumer list: every job, interface, and report that reads an MDS view. Ask the teams, then confirm by checking what actually queries those objects.
  7. Note your business rules in plain language. They will not transfer as executable logic, and the intent behind them is easy to lose.
  8. Verify: reimport a package into a test MDS instance and compare row counts against the source before you trust any of it.

Do this before the server changes

MDS is gone from SQL Server 2025, so upgrading the instance removes the web application and the tooling along with it. Export while the service is still running and you can still open the UI to check what the package captured. The Excel add-in is a separate casualty with its own timeline — it stopped working in April 2025 when Office disabled ActiveX, so if that was your extraction route, it is already closed.

Where the export lands

An export is only half a migration — something has to read it. Primentra's migration wizard takes MDS structure and data and maps models to models, entities to entities, attributes to attributes, including domain-based attributes and hierarchies. The permission model still needs rebuilding, because it was never in the package to begin with, but the structural work is mechanical rather than manual. The migration guide covers the full sequence, and validating a master data migration covers how to prove the result matches what you exported.

Frequently asked questions

How do I export models and data from Master Data Services?

Use MDSModelDeploy.exe on the MDS server with the createpackage action, naming the package, model, service and version, and add -includedata to capture members as well as structure. The .pkg holds entities, attributes, attribute groups, hierarchies, collections, business rules, version flags and subscription views.

What does MDSModelDeploy not export?

User and group permissions and file attributes are excluded and must be recreated by hand. The package also carries no record of which downstream jobs read your subscription views, no transaction or audit history, and no notification configuration. It is not a complete backup of your implementation.

Can I export MDS data with SQL instead?

Yes, and you should do both. Subscription views in the mdm schema expose each entity as a readable view, so a plain SELECT produces a portable snapshot any target system can ingest. Keep those CSVs beside the .pkg — a CSV opens without MDS, a package does not.

When should I export my MDS data?

Before the MDS server changes, and well before any SQL Server upgrade. MDS was removed in SQL Server 2025, so upgrading the instance takes the web application and tooling with it. Export while the service still runs and you can still open the UI to verify what the package captured.

Somewhere for the export to go

Primentra's migration wizard reads your MDS models, entities, attributes and hierarchies and maps them across, on your own SQL Server. Run it against a copy in the 60-day trial while MDS is still up, and compare the two side by side.

Start free 60-day trial →MDS migration guide →Validating the migration →

More from the blog

Is there Master Data Services in Microsoft Fabric? No — and here is what people do instead9 min readMaster data identifiers: the choice you cannot reverse9 min readBuild vs buy for master data management: rolling your own is how you become the next abandoned MDS10 min read

Ready to migrate from Microsoft MDS?

Join the waitlist and be the first to try Primentra. All features included.

Download Free TrialTry DemoCompare MDM tools
How to get your data out of MDS before you lose access to it | Primentra