Data Export That Is Actually Portable, Not Just a CSV
A CSV export button is not data portability. What a genuinely portable data export includes, and how to tell if you could really leave a vendor with it.
Every vendor has an export button. Almost none of them give you a portable export. There is a huge gap between downloading a CSV and actually being able to leave, and vendors count on you not noticing the gap until you try to move. A real export preserves your relationships, your history, your attachments, and your structure in a format another system can load. A token export gives you a flat file of the easy fields, drops everything that made the data useful, and technically satisfies the promise while leaving you stuck. If you cannot rebuild your workflow from the export, you do not own your data. You are renting it with visitation rights.
What makes a data export actually portable?
Four things separate a real export from a checkbox. Miss any one and your exit is compromised.
Completeness. It contains all your data, not the convenient subset. History, metadata, timestamps, user records, the relationships between records. A CSV of just the current state of your main table is not your data; it is a snapshot with everything else stripped off.
Structure. Your data has relationships, records that reference other records, and a flat file destroys them. A portable export preserves the structure so the receiving system can reconstruct what connects to what, not just a pile of disconnected rows.
Attachments and blobs. Files, images, documents. Many exports hand you the database rows and silently omit the actual files those rows point at. Now you have references to things you no longer have.
A loadable format. The export has to go somewhere. If it is in a proprietary shape only the original vendor can read, it is not portable, it is a souvenir. Standard formats that another tool can ingest are the whole point.
Why the CSV button is a trap
The export button exists to defuse the lock-in objection during the sale. It rarely survives contact with an actual migration.
The vendor can honestly say we support data export, and the checkbox gets ticked in your evaluation. Then when you try to leave, you find the export is missing history, missing relationships, missing files, or is in a format nothing else reads. The promise was technically kept and practically useless. This is exactly the gap a vendor exit fire drill is designed to catch, because the only way to know your export is real is to actually try loading it somewhere.
The trap is worse for data that compounds. Analytics history, customer records, years of accumulated context, these get more valuable over time, and a lossy export destroys precisely the part that took longest to build. It is the same reason I keep analytics data on my own infrastructure rather than trusting a vendor to hand back the history I care about.
How to test whether your export is real
Do not trust the button. Test it, the same way you would test a backup with a real restore.
Run the export and open it. Is your full history there, or just current state? Are the relationships between records preserved, or is it flattened? Are your files included, or only references to them?
Then actually load it somewhere. Import it into another tool, or into your own database on a box you control. If it loads and the data is usable, your exit is real. If it fails, or loads as a lifeless flat pile, you just learned your true switching cost while nothing was on fire.
Time it. A portable export you can load in an hour is freedom. An export that would take three weeks of reformatting is lock-in wearing a helpful mask.
What to do when the export is not portable
Sometimes you find out a critical vendor's export is garbage. You have three moves.
Keep your own copy. If the vendor will not give you a clean full export, pull incremental exports on a schedule and store them yourself, so your data lives somewhere you control even while you use their tool. This is the practical version of owning your backups applied to a vendor you cannot yet leave.
Reduce what you put in. If the export is lossy, be deliberate about how much irreplaceable data you let accumulate inside a system you cannot cleanly exit.
Weight it in your vendor choice. Export quality should be a first-class criterion when you evaluate anything, right alongside price and features, because it determines whether you have an exit at all. That is the heart of making sure every vendor has an exit plan before you depend on them.
Data portability is not a feature you check once. It is the thing that determines whether you own your business or a vendor does. A real export, tested and loadable, is what turns the whole own-your-stack idea from a slogan into something true. Keep the canonical copy on infrastructure you control at HostSSH, and no export button ever gets to decide whether you can leave.