mysql - migrations - rails db
Soporte para restricción de clave externa en Rails (4)
En Ruby on Rails, ¿cómo agregar restricción de clave externa en la migración?
Aquí hay una solución basada en gem que incluye soporte para agregar y eliminar restricciones de clave externa, no falla con sqlite y funciona correctamente con los archivos schema.rb:
Esta es una actualización de la gema matthuhiggins-foreign: http://github.com/sparkfly/foreigner
caracteristicas:
- cobertura de rspec, probado contra PostgreSQL 8.3.9 y MySQL 5.0.90
- Soporte de migración
- soporte de schema.rb
Las versiones futuras incluirán restricciones CHECK para PostgreSQL, que es necesaria para implementar la herencia de tablas múltiples.
¿Sería suficiente con agregar lo siguiente, por ejemplo, con Products
y modelos de User
?
add_index :products, :user_id
AFAIK, no hay soporte integrado para eso, pero hay varios complementos que lo ayudan con eso. También puede agregarlos manualmente a sus archivos de migración, simplemente use el método de ejecución para eso, por ej. (Muestra de la API de Rails):
class MakeJoinUnique < ActiveRecord::Migration
def self.up
execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)"
end
def self.down
execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`"
end
end