Is there a recommended way to "promote" configuration changes from dev to staging to prod?

We have three copies of Corteza: dev, staging, and prod. At this point, staging and prod are “empty”. We have done a lot of work in dev including adding modules, fields, styling, etc. We also have a lot of data in dev that we imported from Salesforce a month or two ago. We would like to copy all of the new modules, fields, styling, etc. from dev to staging and prod without copying the stale records we imported from Salesforce.
Is there a recommended way to do this?
It looks like the data we imported from Salesforce is in the “compose_record” table. Is there a way to copy everything except the compose_record table?
If there isn’t a way to just copy the config, would it work to backup the dev MySQL db, restore it in staging, and truncate the compose_record table?
Thanks

At the moment, we do site promotion manually.
What we suggest is (we usually automate) making a (partial) DB dump from instance A, exporting any files from instance A; and sending all of that to instance B

You can instruct MySQL dump to omit specific tables.
We generally ignore these tables also:

actionlog
auth_oa2tokens
auth_sessions
automation_sessions
queue_messages
resource_activity_log

If you’re ignoring records, I’d also recommend you ignore compose_record_revisions