My problem is that I have 0 experience in web2, I directly started to learn about backends when I learned Motoko. Therefore, I have barely any knowledge about how DBs and backends of traditional web apps are managed.
If you want to do breaking changes to a DB in web2 how is that done? I imagine you use a copy of the DB and create a new one with the new schema and then run a script to add the modified data to the new DB. Then you test that and ultimately run it on your real DB, correct?
I have the following questions related to that:
- What is the simplest way to do something equivalent in Motoko?
- Where do you keep backups of the state?
- Would the simplest solution be to just store data off-chain before doing an upgrade and then reading it back into the canister? I guess this would break trust assumptions if the app was managed by an SNS but that would not be important initially for my case.
- Would I even need to care about stable structures then?
- In web2 do people use specific tools for versioning control of the DB and/or is schema?
Thanks in advance for any input.