Criar FK física via Migration - Tem como?
|
|
Bem, querendo preservar a integridade de um banco de dados, caso o mesmo fosse acesso fora da aplicação rails, eu gostaria que por exemplo de criar as FKs entre as tabelas via migration…. Tem como ??? No momento que eu crio as tabelas no migration, eu ja crio uma FK para outra tabela, da pra fazer isso direto da migration ? |
|
|
http://www.redhillonrails.org/#foreign_key_migrations Talvez precise algum trabalho para o Rails 2.0 |
|
|
eh pelo visto nativamente, acho que nao tem não… vou dar uma olhada neste plugin mais tarde… Obrigado Henrique! :) |
|
|
Ah sim… que eu saiba, não existe um modo nativo. E isso é uma decisão dos mantenedores do Rails (não sei exatamente de quem), de que a integridade do banco deve ser mantida pela aplicação, e não pelo banco. Eu também acho isso horrível, e já foi motivo para várias discussões no passado. |
|
|
Isso aí é pq o pessoal usa MySQL como servidor padrão, que não tem FKs (até onde lembro). Dá uma olhada no Adapter do Postgres… se bem lembro tinha algo pra isso e usar no migration era bem simples. Mas posso estar errado, faz tempo q vi isso. |
|
|
É verdade Ronie, o motivo era o MySQL mesmo. MySQL tem suporte à FK sim, mas depende da engine usada. Até uma certa versão (e quando começaram o Rails), MySQL só tinha uma engine – MyISAM – que não suportava FK. |
|
|
Hoje eu uso como padrão InnoDB.. e creio que ja fiz algumas FKs por lá… :D |
|
|
Pessoal, tenho usado assim: end |
|
|
Posta esse código no Refactor and DRY que garanto que vão aparecer sugestões :D Q BD vc tá usando? |
|
|
To usando mysql e postgres com Rails 1.2.6. Tá funcionando com os dois. |

