Estoy usando rails 3.2.6 y necesito crear una base de datos VIEW. Como de costumbre, creé una migración e intenté lograr el objetivo utilizando el método de ejecución.Rails 3.2.6 y creación de vistas de bases de datos a través de migraciones
Lamentablemente, la migración genera una tabla, no una vista. ¿Por qué?
Muchas gracias de antemano, Mauro
ACTUALIZACIÓN:
me gustaría tener algo de la siguiente manera:
class CreateMyView < ActiveRecord::Migration
def self.up
execute <<-SQL
CREATE VIEW my_view AS SELECT ...
SQL
end
def self.down
execute <<-SQL
DROP VIEW my_view
SQL
end
end
Desafortunadamente esta migración crea una tabla ...
ACTUALIZACIÓN: ¡el código anterior funciona! Estaba ejecutando rake db: reinicio en lugar de rake db: migrate: reset (error mío)
No estoy seguro de que sea posible generar dicha migración. Use SQL sin procesar para crear vista. –
Estoy haciendo lo mismo (excepto que estoy usando def up y def down, no def self.up y def self.down - ¿hay alguna diferencia?) Y obtengo el mismo comportamiento: crea una vista cuando ejecutar la migración, pero agrega un comando create_table al archivo schema.rb. – Ladlestein