Миграция Rails для изменения существующего представления базы данных
У меня есть вид с именем my_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
теперь мне нужно другое поле, скажем my_new_field
от table1
быть доступным в my_view
, Но я понятия не имею, как написать миграцию для этого. Любая помощь высоко ценится. Спасибо
2 ответа
Решение
Как насчет просто воссоздать вид:
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
Живописная жемчужина (Thoughtbot) поможет вам в управлении вашими взглядами!