- merging master to branch a because of this important changes, so a is ahead of master not just a fork.
- now I put a copy of the production database to the development database
of course now the migration first created in a is not there, because it never reached master, but because it has a lower number than the last migration in master, rake db:migrate does not do anything.
That doesn't sound right - rake db:migrate runs migrations that have not been run by comparing the contents of the schema_migrations table with the list of available migrations: it doesn't just assume that everything upto the largest entry has been run (unless possibly you are using the legacy pre rails 2 migration numbering scheme - no idea if that is still possible)
The only exception to this is that if you run db:schema:load then it assumes all migrations upto the version named in schema.rb have run.