Moving HomeAssistant to new hardware: Sanity test

I want to make sure I understand how this process is going to work before I do anything. I plan on moving from MachineA running HomeAssistant in a docker container, with other various containers supporting HomeAssistant to MachineB, also using docker containers.

On MachineA I am running a MariaDB container to which HA is pointing. MachineB I plan on using the default SQLLite as the database.

Should I be able to use the HA backup procedure to take a backup on A, then restore that backup to B? Would this have the effect of taking whatever data was stored in the MariaDB container and copying it to Machine B’s HA container’s SQLLite data directory?

For my Z-Wave radio, I planned on taking a backup of the zwave-js-ui container on A, restoring on B, then moving the radio from A to B. The radio will still have links to the zwave devices and the zwave devices themselves will still have links to the radio. The zwave-js-ui container will now have the correct “map” as specified in the radio-devices mappings on the physical devices. Is this procedure correct? Doing something similar will work for Zigbee radio/containers? Is there a “better” way to move the radios that won’t require me to rebuild my networks?

You have a number of steps to perform, each possible, and you want to do them in one fell swoop? What if one goes wrong?
Do your database conversion step first. Once that is out of the way, do the docker migration and hope the ZigBee devices come across, keeping in mind the docker device assignments for things like LAN, serial ports and USB Ports will need to match for a simple move without a lot of re-installation and reconfiguration
Take lots of snapshots/backups so you can roll back to a known scenario

I never moved docker containers from machine A to machine B. But the easiest thing to do is probably just to take hdd from macine A and plug it in machine B.
If that doesnt work copy entire docker dir where you store your containers and paste it to new hdd on machine B.

It’s docker

You copy files from A to b(rsync is good option for this)

After copy you just recreate docker and start container.

EDIT
Sorry, missed the DB changes

No. The database formats are not compatible and are in different locations.

Do your database conversion step first. Once you are confident they worked, tackle the rest. Don’t overcomplicate things by doing them all at once.

Do you have your zui store directory mapped outside the container?

I have moved my zwave-js instance around quite a bit. I just use the same docker compose file and copy the store directory (or use zui backup/restore). Adjust the controller mapping as needed. I always map to /dev/zwave so then the zwave-js config stays the same. May not change for you.

    devices:
      - '/dev/serial/by-id/usb-Zooz_800_Z-Wave_Stick_533D004242-if00:/dev/zwave'

Let me be a bit more specific. I typically do an NVM backup first and then restore to another controller and then use that in the new machine. I like to leave all the parts of the old setup in place just in case.

Oh, one more thing. That NVM backup and restore bit me not too long ago. I moved to a new machine, restored the store directory first and did the NVM restore after. The problem was the controller I was using was from a backup I had done many months before. So, it had the same Home ID as the “production” controller, but missing a bunch of devices I had included after that last backup. It apparently updated my data files back to how it was before I had a chance to do the NVM restore.

Tha is, if you use a different controller, do the NMV restore before restoring the zwave-js database files.