Quando se usa o comando rake db:migrate:down VERSION=alguma_versão, os registros na tabela schema_migrations não estão sendo atualizados.
Isto significa que após usar o comando rake db:migrate:down ou up se você rodar o comando rake db:migrate algumas migrations podem não ser executadas. Vamos simular isto para ficar fácil de entender o problema:
$ ./script/generate migration test_migration
create db/migrate
create db/migrate/20080608082216_test_migration.rb
$ rake db:migrate
== 20080608082216 TestMigration: migrating ====================================
-- create_table
-> 0.0137s
== 20080608082216 TestMigration: migrated ===========================
$ rake db:migrate:down VERSION=20080608082216
== 20080608082216 TestMigration: reverting ====================================
-- drop_table
-> 0.0139s
== 20080608082216 TestMigration: reverted ===========================
$ rake db:migrate
$
Este problema foi corrigido ao se certificar de atualizar a tabela schema_migrations após a execução destas tarefas. Estará disponível na próxima versão do Rails.
Uma outra alteração da qual não posso comentar muito já que não sou muito experiente em PostgreSQL é que o Active Record agora aceita fazer isto:
:conditions => [':foo::integer', {:foo => 1 }]
Peço aos mais experientes que comentem sobre isto.