Copy/clone collections across copied data sources

First post, and I have to say I love Metabase! I have configured several instances and have also poked inside the meta database a bit (relates to this question)

Currently, I am setting up one consolidated Metabase instance for a client that uses separate databases for each of their large customers. Each of these databases has an identical schema that is kept in sync automatically (but the data is, of course, different for each customer). The client does not need to combine separate databases in the same questions/collections, but wants to instead maintain parallel sibling Collections for each customer that have identical Dashboards/Questions/Permissions.

Is there a plan for Metabase to support a feature like this, e.g. a “database switcher” at the Question/Dashboard level, or a “copy Question to new database”?

For what its worth, I was able to build a DB script that performs the copy variation. It is working well so far, but I wonder if there is a native solution for this in the works that would be more future-proof, e.g. robust to Metabase internal schema upgrades that change the fields or logic behind these relevant tables (which is hard-coded into my script):

  • metabase_database, metabase_table, metabase_field (to remap non-SQL queries with reference to field and table IDs across databases)
  • report_card, report_dashboard, report_dashboardcard, dashboardcard_series
  • collection
  • permission

Hi @aleontiev
It sounds like you’re looking for Serialization, which is currently only part of the Enterprise Edition.

There’s also third-party tools, which might be able to do what you want:
https://github.com/elevate/elevate.metabase.tools
https://github.com/angeloonline/MetabaseExportTool

Thanks for the quick response and links @flamber

Serialization sounds similar to my use-case, but I think the key difference is that we don’t want separate Metabase instances – we want this replication within a single Metabase instance! So we don’t really need anything to be dumped and loaded.

@aleontiev
There’s several other features being added to Serialization in the future, so I’m pretty sure this is still what you’re looking for.
I understand that you’re just looking for a clone-feature, but that’s essentially what dump+change+load does.

Got it, I didn’t realize “change” was also part of serialization, I assumed it was dump/load across instances from the description. Sounds good!