How are managed the Id's of items when exporting/importing?


From what I see/understand, every item in Metabase (query, collection, dashboard, database, ...) is represented by an ID.
Imagine that I have an instance of Metabase in a development environment, in which I have created 4 queries having ID 1, 2,3,4, and 2 dashboards having ID 10 and 11 (it's just an example).

Now I want to initialize another instance of Metabase in a production environment. Using serialization tools, I create a dump of my development environment, and import it in the new instance in production. So far so good.

Now imagine that I create a new query with ID 5, and a new dashboard with ID 12, in the development environment. But in parallel, a back-office user also creates a new query and a new dashboard in the production environment, completely different of mines, but with the same ID's.

Is it possible then to export/import my new query/dashboard from development to production environment, without overriding what the back-office user did in production ?

There are actually 2 underlying questions:

  • Does the serialization functionality allow to export/import only some specific items, or does it allow to export/import only a full dump of the whole Metabase database from one instance to another ? (meaning that everything is always overwritten in the destination instance)

  • If it's possible to export/import some specific items, how does Metabase manage the potential conflicts ? Are there options that we can choose, like in a basic FTP tool ? For example : always/never override if an ID already exists, ask before overriding, ...

Serialization will start adding an entity id starting in v47

thank you for your answer.
So I guess that currently, it's only possible to do a "full" dump, that will overwrite everything. Is it correct ?
Can you tell me when is foreseen the v47 ?

47 end of June