Years ago when i was younger i would suggest "procedure" approach -> move all DB stuff to as encapsulated procedures as possible (crud)
then making a migration BUT with stay on application side to procedures that are changed with migration.
Now? I dont know, i didnt thought about stuff like that for at least 4? 5? years as i am doing a bit different part of it development now then then.