用于更改现有数据库视图的Rails迁移
问题描述:
我有一个名为my_view
的视图,它是使用以下迁移创建的。用于更改现有数据库视图的Rails迁移
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
现在我需要另一个领域,说my_new_field
从table1
在my_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
谢谢,我会尝试, –
这给出了一个错误'的ActiveRecord :: StatementInvalid:PG :: InvalidTableDefinition:错误:无法更改视图列“created_at”的名字到“my_new_field”# –
尝试再次添加drop-view-part。 – irene