There are tools like sqlacodegen [1] to generate the model code from the database and liquibase [2] for migrations and diffing.
> And I just don't see any benefits for us with the database-first approach.
The main motivation for this is that the database is likely to outlive the application code and you will get a cleaner database design than what the ORM would generate for you [3].
> For context, we have 1 database/schema shared by multiple projects.
Sounds like trouble to me. Is there a reason for this design? Normally each project should have its own database.
> And I just don't see any benefits for us with the database-first approach.
The main motivation for this is that the database is likely to outlive the application code and you will get a cleaner database design than what the ORM would generate for you [3].
> For context, we have 1 database/schema shared by multiple projects.
Sounds like trouble to me. Is there a reason for this design? Normally each project should have its own database.
[1] https://pypi.org/project/sqlacodegen/
[2] https://www.liquibase.org/documentation/diff.html
[3] https://blog.jooq.org/2018/06/06/truth-first-or-why-you-shou...