【发布时间】:2012-07-26 09:50:58
【问题描述】:
我使用的是 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(我的错误)
【问题讨论】:
-
我不确定是否可以生成这样的迁移。使用原始 SQL 创建视图。
-
我在做同样的事情(除了我使用 def up 和 def down,而不是 def self.up 和 def self.down - 有区别吗?)我得到了同样的行为:当我运行迁移时它会创建一个视图,但会在 schema.rb 文件中添加一个 create_table 命令。
标签: mysql ruby-on-rails-3.2 rails-migrations