Chances are, that's the problem though. You have to re-write because your design is bad enough that it's necessary. The only time you'd re-write without changing the design is when changing languages or platforms.
Chances are, that's the problem though. You have to re-write because your design is bad enough that it's necessary. The only time you'd re-write without changing the design is when changing languages or platforms.
Then, when that's ready and stable and working with the existing schema, it's way easier to do a refactor and adapt to the new schema too.
Attempting a design re-write without changing the data structures will just result in the same design. And you can't change the data design without then having to change the code to match.
I can't imagine doing that as an independent step towards a rewrite.
Sure you can. You decouple your data structures from your schema with an abstraction layer, facade, etc.
On the other hand, if you need to refactor the database schema, don't rewrite the code. Just do the minimum modifications to keep the app working.
Just don't do both at once.