2023-07-12 16:47:08 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2021-05-06 05:04:52 +09:00
|
|
|
class UpdateFollowRecommendationsToVersion2 < ActiveRecord::Migration[6.1]
|
|
|
|
# We're switching from a normal to a materialized view so we need
|
|
|
|
# custom `up` and `down` paths.
|
|
|
|
|
|
|
|
def up
|
|
|
|
drop_view :follow_recommendations
|
2021-05-08 01:14:29 +09:00
|
|
|
create_view :follow_recommendations, version: 2, materialized: { no_data: true }
|
2021-05-06 05:04:52 +09:00
|
|
|
|
|
|
|
# To be able to refresh the view concurrently,
|
|
|
|
# at least one unique index is required
|
|
|
|
safety_assured { add_index :follow_recommendations, :account_id, unique: true }
|
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
|
|
|
drop_view :follow_recommendations, materialized: true
|
|
|
|
create_view :follow_recommendations, version: 1
|
|
|
|
end
|
|
|
|
end
|