Rails 3.2.6 & database views creation through migrations

馋奶兔 提交于 2020-02-27 04:36:49

问题


I'm using rails 3.2.6 and I need to create a database VIEW. As usual I created a migration and I tried to achieve the goal using the execute method.

Unfortunately the migration generates a table, not a view. Why?

Many thanks in advance, Mauro

UPDATE:

I would like to have something as follows:

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

Unfortunately this migration creates a table...

UPDATE: the previous code works! I was executing rake db:reset instead of rake db:migrate:reset (my mistake)


回答1:


It looks like you've answered your own question, but I'll make a related suggestion. Try the rails_sql_views gem. That link goes to the original repo on GitHub. It looks like it's not being maintained anymore, though. It would be worth looking at the network graph and trying one of the forks. I'm not positive that any of the forks supports Rails 3.2.6, but I'd suggest looking through them. Christian Eichhorn added support for the mysql2 adapter about three years ago.




回答2:


I've made a gem called rails_db_views which is compatible with Rails 4, and still maintained.

Regards,

Yacine.



来源:https://stackoverflow.com/questions/11666736/rails-3-2-6-database-views-creation-through-migrations

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!