我使用的是rails 3.2.6,需要创建一个数据库VIEW。和往常一样,我创建了一个迁移,并尝试使用execute方法来实现目标。
不幸的是,迁移生成的是一个表,而不是一个视图。为什么?
非常感谢,Mauro
更新:
我想要以下东西:
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
不幸的是,此迁移创建了一个表。。。
更新:前面的代码有效!我执行的是rake db:reset而不是rake db:migrate:reset(我的错误)
看起来你已经回答了自己的问题,但我会提出一个相关的建议。试试rails_sql_views gem。该链接指向GitHub上的原始repo。不过,它看起来不再被维护了。看看网络图并尝试其中一个分叉是值得的。我并不肯定任何fork都支持Rails 3.2.6,但我建议仔细研究一下。Christian Eichhorn在大约三年前增加了对mysql2适配器的支持。
我制作了一个名为rails_db_views的gem,它与Rails4兼容,并且仍然得到维护。
问候,
亚辛。