Prefer db:migrate over db:schema:load

The schema.rb file has a version stamp associated with it. When you run
db:schema:load, Rails creates a fresh database according to that
schema.rb file, and at the same time populates the schema_migrations
table with all the migrations whose version number precede that of the
schema.

Rails is essentially faking all the migrations up until that point, but
doesn't actually run them. (Tested this out by generating an empty
migration file, calling db:migrate locally, but then inserting an error
into the migration file before deploying it to the server. On the
server, db:schema:load will run, and the result is that the bad
migration is included in the schema_migrations table as if it had been
run, even though it clearly had not.)

http://stackoverflow.com/questions/18988094/how-does-dbschemaload-affect
-future-dbmigrate-actions