14

我正在使用 rails 3.2.6,我需要创建一个数据库视图。像往常一样,我创建了一个迁移,并尝试使用 execute 方法实现目标。

不幸的是,迁移会生成一个表,而不是一个视图。为什么?

非常感谢,毛罗

更新:

我想要以下内容:

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 (我的错误)

4

2 回答 2

2

看起来您已经回答了自己的问题,但我会提出相关建议。试试rails_sql_views gem。该链接指向 GitHub 上的原始存储库。不过,看起来它不再被维护了。值得查看网络图并尝试其中一个分支。我不确定任何分支都支持 Rails 3.2.6,但我建议仔细查看它们。大约三年前, Christian Eichhorn添加了对 mysql2 适配器的支持。

于 2013-06-29T23:56:31.680 回答
2

我制作了一个名为rails_db_views的 gem ,它与 Rails 4 兼容,并且仍然得到维护。

问候,

亚辛。

于 2015-03-27T03:25:53.547 回答