Believe me or not, but your database is not your application. Neither are ORM models or even your framework. They are not reasons for building yet another project. The true motivation is to satisfy some business needs. Unfortunately, it might got out of sight due to years spent on writing Django- or Rails-like web applications. Their obtrusive Active Record ORMs usually dominates in applications, coupling business logic to framework and making it impossible to (unit) test it without database access.
What if I told you that you can develop and test features without even thinking about how business objects map into database tables? Software engineering brought several solutions over last few years and I want to share with you one of them, called Clean Architecture.
Clean Architecture is an approach that puts your customer’s concerns in the centre of your software. All lesser issues, such as persistence are treated as details. They are nothing more but a bunch of plugins to most valuable business logic. This may sound crazy, but software made with Clean Architecture has several bright sides. You get nice, clear separation between different concerns on layers. Therefore you can test all business logic without touching database. Since Clean Architecture uses a concept of software layers, it forces you to separate from your framework. It makes upgrading or even swapping framework much less painful. Another advantage CA gives is an improved maintainability. It also makes introducing new people to the project much simpler since everything has its place. Last, but not least - it literally SCREAMS at you what the project is doing thanks to naming conventions and project structure it proposes.
Start writing better software today. For yourself and for your customers.