Sem ver o código fica difícil dar mais detalhes, mas enfim, não consigo ver a dificuldade.
Se não quer trazer os registros deletados, precisa de um WHERE deleted_at IS NULL
. Se quer só os deletados, WHERE deleted_at IS NOT NULL
(ou só os que foram deletados depois de determinada data, WHERE deleted_at > data
e assim por diante). E se quiser todos (deletados e não deletados), não precisa do WHERE
.
Mesmo se mudar de linguagem/framework/lib/ferramenta, vai precisar fazer isso, não tem como escapar. Mas sinceramente, não acho que isso justifica mudar de linguagem. É uma situação relativamente comum, que a maioria dos - senão todos os - frameworks conseguem tratar sem problemas.
Por fim, não sei se é exatamente o seu caso, mas em uma busca rápida encontrei isso, talvez ajude.
Na verdade eu voltaria alguns passos e analisaria se vc precisa mesmo de soft delete. Pois nem sempre é necessário: como tudo em computação, tem prós e contras, então o ideal é primeiro avaliar se precisa mesmo (caso já tenha feito essa análise, pode ignorar este parágrafo).