I use Tableau Server Datasources, one for each database instance/function/version, named something like 'Operations (Customer - Testing - 3.9.18)' I put all of them in the same Site, in different security groups. I put all of them in the same workbook. Then I create one set of worksheets/dashboards for each of the active database structure versions. (One set is probably enough if your db structure is not under active, continuous development.) Connect the Dev worksheet version to the Master-Dev instance of the Datasource, and save the workbook. Finally, one datasource at a time, I do a 'Data > Replace Data Source' and a 'Server>Publish', so I end up with multiple published workbooks for one 'source' workbook.
While you might be tempted at first to put each Customer datasource on a separate 'Site' or server, it becomes quite difficult to handle across db upgrades, because you have to disconnect from all the Datasources (Create Local Copy, Replace Data Source) in a site before you can Log Off and Log Into another site. If you use different Sites or servers -particularly if your underlying database changes a lot- I would use .tde files rather than Datasources.