Many databases have APIS to get just about every piece of information that exists about the tables and columns. It makes absolutely no sense to have to set_primary_key “blah” when the ActiveRecord coule just query the database meta data and discover that. The same goes for has_many, has_one, and many kinds of validation constraints.