about summary refs log tree commit diff
path: root/db/migrate/20211213040746_update_account_summaries_to_version_2.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb')
-rw-r--r--db/migrate/20211213040746_update_account_summaries_to_version_2.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/db/migrate/20211213040746_update_account_summaries_to_version_2.rb b/db/migrate/20211213040746_update_account_summaries_to_version_2.rb
new file mode 100644
index 000000000..0d1f092ec
--- /dev/null
+++ b/db/migrate/20211213040746_update_account_summaries_to_version_2.rb
@@ -0,0 +1,24 @@
+class UpdateAccountSummariesToVersion2 < ActiveRecord::Migration[6.1]
+  def up
+    reapplication_follow_recommendations_v2 do
+      drop_view :account_summaries, materialized: true
+      create_view :account_summaries, version: 2, materialized: { no_data: true }
+      safety_assured { add_index :account_summaries, :account_id, unique: true }
+    end
+  end
+
+  def down
+    reapplication_follow_recommendations_v2 do
+      drop_view :account_summaries, materialized: true
+      create_view :account_summaries, version: 1, materialized: { no_data: true }
+      safety_assured { add_index :account_summaries, :account_id, unique: true }
+    end
+  end
+
+  def reapplication_follow_recommendations_v2
+    drop_view :follow_recommendations, materialized: true
+    yield
+    create_view :follow_recommendations, version: 2, materialized: { no_data: true }
+    safety_assured { add_index :follow_recommendations, :account_id, unique: true }
+  end
+end