Safest way to upgrade custom self hosted ghost

I would like to discuss how others are safely upgrading their self hosted ghost installations.
I have forked the ghost repo as I wanted to make some modifications to it.
I am hosting ghost on a digital ocean droplet.

Here is my current work flow

I pull from origin resolve any conflicts and merge into local.
I then run yarn build there will be a .tgz that is ready.

I then transfer the build to my droplet using scp

Then I ssh into my droplet and go to the folder where ghost is installed /var/www/ghost
I stop ghost
I stop mysql by running service mysql stop because since I have the lowest tier droplet – it doesn’t have enough memory to run mysql and the upgrade. I am not sure if this is a safe thing to do while upgrading ?? what if the upgrade also have db updates to the tables ?
I then upgrade ghost with ghost update --archive /path-to.tgz --force once that is done
I start mysql
I start ghost

So far everything has been working fine.
Any suggestions to make this flow better and more safe ?
What is the best way to backup the database ? so that if I have any paid subscriptions and the db gets corrupted during the process I won’t lose tracking of all my paid subscribers.
Would it be better to run the mysql server on a different server and have ghost point to that ?