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.
9 Comentários em "Edge Rails: Correção nas tarefas db:migrate:down e :up"
Ae Carlos,
Sobre o PostgreSQL, a sintaxe dele de typecast é a seguinte: ::
O problema é que quando se usava essa sintaxe, o ActiveRecord achava que o na verdade era um named bind e reclamava que o valor para ele não estava sendo passado no hash.
Agora, aparentemente, eles consertaram esse erro.
[]s
Carlos, o pessoal do rails vai deixar de lançar versões do tipo 2.1.1, contendo algumas correções?
Falo isso porque depois do lançamento do 2.1 já foram resolvidos alguns bugs, ou eles só lançam essas versões quando aparece algum bug bastante crítico?
Hmm, no comentário nao saiu o formato direito..
Vou tentar de novo:
<column>::<type>
Haha… quando eu escrevi isto pensei em você Rodrigo (porque será). Legal, agora entendi.
Thiago, o forma como os releases do Rails são lançados é meio estranha. Eu normalmente uso o edge rails quando algum bug (já corrigido) atrapalha meu desenvolvimento. Mas visto que alguns dos bugs são meio perigosos devemos ter uma nova versão em breve.
Aew Carlos Quando vai sair o ep 23?
Hoje!
Ah que bom.
Parabens pelo otimo trabalho. aguardando…
Hehehe
Fico feliz de ter cumprido suas expectativas rsrsrs
[...] db:migrate:down and :up update schema_migrations. [...]
Deixe o seu comentário!