Currently there isn’t any tooling for this other than the core_store table in the database (Content-Manager views for both list and edit) in which case you can use the CLI options to dump/restore these:
- Dump: https://strapi.io/documentation/developer-docs/latest/cli/CLI.html#strapi-configuration-dump
- Restore: https://strapi.io/documentation/developer-docs/latest/cli/CLI.html#strapi-configuration-restore
For your data, these migrations need to be done manually, also for schema changes we don’t handle this yet (See: Deleting/Updating content-type doesn't drop/migrate the database · Issue #1114 · strapi/strapi · GitHub)
To the above points, we have a database refresh coming in Q3: Database layer (v4) - Roadmap | Product Roadmap
Among the changes we want to handle:
- Automatically clean up deleted tables (models)
- Automatically clean up deleted columns (fields)
- Automatically rename columns when changes are made in Strapi
- Provide some basic tooling to migrate Users, Roles, Permissions, and Data between environments
What isn’t planned for this refresh but we want to do:
- Migration from other CMSes (headless, decoupled, or monolithic)
- Advanced migrations for Strapi updates
- Automated migrations for Strapi updates
A strong point I would like to make, if you plan on having a large database (or just want to maintain your sanity) I suggest you avoid MongoDB for non-hobby projects.
- PostgreSQL for single node speed
- MariaDB Galera Clusters for HA/LB high load applications
- MySQL if you are more familiar with their clustering solution.