From http://edgeguides.rubyonrails.org/active_record_migrations.html#types-of-schema-dumps:
There is however a trade-off: db/schema.rb cannot express database
specific items such as triggers, stored procedures or check constraints.
While in a migration you can execute custom SQL statements, the schema
dumper cannot reconstitute those statements from the database. If you are
using features like this, then you should set the schema format to :sql.
No longer is this the case. You can now use the default schema format
(:ruby) and still preserve your check constraints.