Data migration from one personal frappe to another personal frappe. Is it possible?

In one Frappe framework instance, I have an app with a site, and in another separate personal Frappe instance, I also have an app with a site. Both instances use MariaDB databases. Now, I want to migrate all the doctypes, sites, and data, including the doctypes, to another Frappe instance. Is it possible to do this migration?

Take a backup from one site and restore it on another site.

is it possible to take backup for whole site with an app, doctypes, datas ?

Everything stored in the database, so if you want then test it locally and after then restore it on the live server.

Is there any documentation or videos for this? I took a backup using the command bench --site site.name backup, but after that, I have no idea what to do.

Reference:

I restored it, but while the data and sites are restored, the app is not. When I open Frappe locally, it shows 'module not found error.

As many apps as there are apps from the site from which the database has been backed up, it should be an app on another site. Otherwise, an error will occur.

As far as I know, only the database data will be migrated. The remaining apps and doctypes need to be created manually with the same names as the previous apps and doctypes. Is that correct?

if you have created a custom app or custom doctype i don’t think it will be migrate to the new one, as i tested earlier.

ohh i am also struggling in that part in my custom app data are successfully migrated but the app and doctype are not getting so while starting time it shows an [app-name] module not found.

I stumbled upon similar problems.

It seems the site, the additions, and the versions of its components need to be taken care of separately.

There should be a workflow easing creating some kind of automatic install script for the reserve/backup site which pins the URLs and versions of modules, apps, etc. in the generated install script.

But then you might end up with the same errors as on the old one, while (possibly, this is only one scenario) you try to evade from a buggy version to a newer, supposedly correcter one.