ruby-on-rails - 用于更改现有数据库 View 的 Rails 迁移

标签 ruby-on-rails ruby-on-rails-4 database-migration database-view

我有一个名为 my_view 的 View ,它是我使用以下迁移创建的。

class CreateMyView < ActiveRecord::Migration
  def change
    execute <<-SQL
      drop view if exists my_view
    SQL

    execute <<-SQL
      CREATE OR REPLACE VIEW my_view AS 
      SELECT 
        t1.wfs_id,
        t1.step_id,
        t1.status,
        t1.applied_by,
        t2.created_at,
        t2.is_wfs_end,
        t2.app_status AS flowstep
       FROM table1 t1
         JOIN table2 t2 ON t1.wfs_id = t2.wfs_id
      WHERE t1.del_flag = false;
    SQL
  end
end

现在我需要另一个字段,例如 table1 中的 my_new_field 以便在 my_view 中可用。但我不知道如何为此编写迁移。非常感谢任何帮助。谢谢

最佳答案

简单地重新创建 View 怎么样:

class ChangeMyView < ActiveRecord::Migration   
  def change
    execute <<-SQL
      drop view if exists my_view
    SQL

    execute <<-SQL
      CREATE OR REPLACE VIEW my_view AS 
      SELECT 
        t1.wfs_id,
        t1.step_id,
        t1.status,
        t1.applied_by,
        t1.my_new_field,
        t2.created_at,
        t2.is_wfs_end,
        t2.app_status AS flowstep
      FROM table1 t1
        JOIN table2 t2 ON t1.wfs_id = t2.wfs_id
      WHERE t1.del_flag = false;
   SQL 
  end

end

关于ruby-on-rails - 用于更改现有数据库 View 的 Rails 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40607727/

相关文章:

javascript - 具有最多嵌套模型和茧 gem 的 rails ;

ruby-on-rails - 从参与事件的数据库中获取所有用户

ruby-on-rails - 如何通过 Net::IMAP 获取主题、内容等

c# - 在运行时迁移不同的数据库

ruby-on-rails - rails : random unique array of fixed length

sql - 限制类别页面上产品列表中子类别的项目数量?

jquery - Rails 远程表单不触发 ajax :success handler

ruby-on-rails - 如何使用 strong_parameters 允许除 user_id 之外的所有属性?

mysql - 有没有办法跳过迁移文件的错误并继续下一个文件(Ruby on Rails + mysql)?

database-migration - Liquibase 属性文件中的密码加密