There has been some time since web frameworks like django or rails become popular. Usually they had an ORM integrated in or, more generally, a relational database toolkit. What I want to discuss is relevant to most of database toolkits: django ORM, sqlalchemy, rails active record, sequelizejs and many others.
One common thing about their design is that the database schema is defined with language structures, be it classes or structs or dictionaries, and not by making requests to the database for existing tables.
In other words, like this