If you are using something like Mongoid, you are declaring the schema only once directly in your rails app. How having your schema burried in migrations - however clean they are - is superior?
pg_dump -s your_db | less
Or you can explore it using `psql`: $ psql your_db
List schemas: your_db=# \dn
List tables in a schema: your_db=# \dt public.
Show table detailed info (constraints, indexes, comments, etc.): your_db=# \dt+ your_table
List functions: your_db=# \df
Or you can install pgAdmin and browse through the entire database--tables, constraints, indexes, the whole shebang--in a single screen. At no point are the migrations burying the schema. That's just a fundamental misunderstanding of how to work with databases.The migrations don't drive your schema, the schema drives the migrations. Proper tools don't make you have a bunch of .SQL files that organise your database.