Other applications and databases
For every source without a guide of its own, the method is the same: get the content out in a structured form, map it, import it with remote ids, keep the addresses. This page gives the method and the tool for each kind of source.
Migration hub · Checklist · Mapping · Tools
1. The tool for each kind of source
| Source | Get it out as | Bring it in with |
|---|---|---|
| A spreadsheet (Excel, LibreOffice, Google Sheets) | CSV, UTF-8, one sheet per content type | xrowextract's importer with --map (dry run first); exp:ezcsvimport for simple classes (; separated, no header row, columns in attribute order) |
| Any SQL database (a custom PHP app, an intranet, an old CMS) | one query per content type into CSV or JSON | xrowextract's importer, or the script skeleton |
| An application with an API only | a script that pages through the API into JSON | the script skeleton |
| Office documents (Writer, Word through conversion) | the documents | ezodf (Writer import; Word and PDF need the conversion daemon) |
| A folder of images and files | a ZIP | the upload page's ZIP importer (keeps the folder structure on request) |
| A feed (RSS) | the feed | Setup > RSS import, run by the rssimport cronjob (newest items only) |
| Another Exponential | packages, xrowextract archives, exp:layouts | the same tools on the target |
| A site with no access to its back end | a crawl | static HTML method |
2. The method
- Inventory (checklist, 1): types, counts, files, users, addresses.
- Mapping table per type (mapping), including what is dropped on purpose.
- Export to a frozen file set (CSV/JSON plus files), with a stable source id per item.
- Transform in a script outside Exponential: clean HTML, normalize dates to Unix timestamps, map categories to parent locations, resolve file paths.
- Import in dependency order (media, containers, content, relations, translations, users), with remote ids, repeatable.
- Addresses: redirect table from the old routes; aliases, wildcards, web-server rules.
- Verify counts and samples; rehearse; cut over; keep the old system read-only until sign-off.
3. The way back
Every export of Migrating away from Exponential is a plain format (CSV, JSON, XML, SQL), so any application can load it with its own importer.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.
This page is part of the Exponential documentation and is free documentation under the GNU Free Documentation License 1.3 or any later version (the license of this documentation).