about summary refs log tree commit diff
path: root/db
diff options
context:
space:
mode:
authorFire Demon <firedemon@creature.cafe>2020-09-30 12:25:13 -0500
committerFire Demon <firedemon@creature.cafe>2020-09-30 12:25:13 -0500
commit22e7a7947900cc974715b0c9d1d6b1a44d2ed1eb (patch)
tree918ab95c4f465c9c1fbfcd6706483e3310a38ce5 /db
parent63046c8cb9df8e797d53566f2050313d757b089b (diff)
parentb5edf30160eab3776e44b34325a4ea00d9f71dc5 (diff)
Merge remote-tracking branch 'upstream/master' into merge-glitch
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20200908193330_create_account_deletion_requests.rb8
-rw-r--r--db/migrate/20200917192924_add_notify_to_follows.rb19
-rw-r--r--db/migrate/20200917193034_add_type_to_notifications.rb5
-rw-r--r--db/migrate/20200917222316_add_index_notifications_on_type.rb7
-rw-r--r--db/post_migrate/20200917193528_migrate_notifications_type.rb22
-rw-r--r--db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb15
-rw-r--r--db/schema.rb14
7 files changed, 88 insertions, 2 deletions
diff --git a/db/migrate/20200908193330_create_account_deletion_requests.rb b/db/migrate/20200908193330_create_account_deletion_requests.rb
new file mode 100644
index 000000000..e03183ae4
--- /dev/null
+++ b/db/migrate/20200908193330_create_account_deletion_requests.rb
@@ -0,0 +1,8 @@
+class CreateAccountDeletionRequests < ActiveRecord::Migration[5.2]
+  def change
+    create_table :account_deletion_requests do |t|
+      t.references :account, foreign_key: { on_delete: :cascade }
+      t.timestamps
+    end
+  end
+end
diff --git a/db/migrate/20200917192924_add_notify_to_follows.rb b/db/migrate/20200917192924_add_notify_to_follows.rb
new file mode 100644
index 000000000..d27471c44
--- /dev/null
+++ b/db/migrate/20200917192924_add_notify_to_follows.rb
@@ -0,0 +1,19 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddNotifyToFollows < ActiveRecord::Migration[5.1]
+  include Mastodon::MigrationHelpers
+
+  disable_ddl_transaction!
+
+  def up
+    safety_assured do
+      add_column_with_default :follows, :notify, :boolean, default: false, allow_null: false
+      add_column_with_default :follow_requests, :notify, :boolean, default: false, allow_null: false
+    end
+  end
+
+  def down
+    remove_column :follows, :notify
+    remove_column :follow_requests, :notify
+  end
+end
diff --git a/db/migrate/20200917193034_add_type_to_notifications.rb b/db/migrate/20200917193034_add_type_to_notifications.rb
new file mode 100644
index 000000000..002be3aa0
--- /dev/null
+++ b/db/migrate/20200917193034_add_type_to_notifications.rb
@@ -0,0 +1,5 @@
+class AddTypeToNotifications < ActiveRecord::Migration[5.2]
+  def change
+    add_column :notifications, :type, :string
+  end
+end
diff --git a/db/migrate/20200917222316_add_index_notifications_on_type.rb b/db/migrate/20200917222316_add_index_notifications_on_type.rb
new file mode 100644
index 000000000..9bd23c1d3
--- /dev/null
+++ b/db/migrate/20200917222316_add_index_notifications_on_type.rb
@@ -0,0 +1,7 @@
+class AddIndexNotificationsOnType < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  def change
+    add_index :notifications, [:account_id, :id, :type], order: { id: :desc }, algorithm: :concurrently
+  end
+end
diff --git a/db/post_migrate/20200917193528_migrate_notifications_type.rb b/db/post_migrate/20200917193528_migrate_notifications_type.rb
new file mode 100644
index 000000000..88e423084
--- /dev/null
+++ b/db/post_migrate/20200917193528_migrate_notifications_type.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class MigrateNotificationsType < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  TYPES_TO_MIGRATE = {
+    'Mention'       => :mention,
+    'Status'        => :reblog,
+    'Follow'        => :follow,
+    'FollowRequest' => :follow_request,
+    'Favourite'     => :favourite,
+    'Poll'          => :poll,
+  }.freeze
+
+  def up
+    TYPES_TO_MIGRATE.each_pair do |activity_type, type|
+      Notification.where(activity_type: activity_type, type: nil).in_batches.update_all(type: type)
+    end
+  end
+
+  def down; end
+end
diff --git a/db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb b/db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb
new file mode 100644
index 000000000..cb7f78e53
--- /dev/null
+++ b/db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveIndexNotificationsOnAccountActivity < ActiveRecord::Migration[5.2]
+  disable_ddl_transaction!
+
+  def up
+    remove_index :notifications, name: :account_activity
+    remove_index :notifications, name: :index_notifications_on_account_id_and_id
+  end
+
+  def down
+    add_index :notifications, [:account_id, :activity_id, :activity_type], unique: true, name: 'account_activity', algorithm: :concurrently
+    add_index :notifications, [:account_id, :id], order: { id: :desc }, algorithm: :concurrently
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index f7a21b6d3..620cb49fc 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -36,6 +36,13 @@ ActiveRecord::Schema.define(version: 2020_09_25_035221) do
     t.index ["conversation_id"], name: "index_account_conversations_on_conversation_id"
   end
 
+  create_table "account_deletion_requests", force: :cascade do |t|
+    t.bigint "account_id"
+    t.datetime "created_at", null: false
+    t.datetime "updated_at", null: false
+    t.index ["account_id"], name: "index_account_deletion_requests_on_account_id"
+  end
+
   create_table "account_domain_blocks", force: :cascade do |t|
     t.string "domain"
     t.datetime "created_at", null: false
@@ -454,6 +461,7 @@ ActiveRecord::Schema.define(version: 2020_09_25_035221) do
     t.bigint "target_account_id", null: false
     t.boolean "show_reblogs", default: true, null: false
     t.string "uri"
+    t.boolean "notify", default: false, null: false
     t.index ["account_id", "target_account_id"], name: "index_follow_requests_on_account_id_and_target_account_id", unique: true
   end
 
@@ -464,6 +472,7 @@ ActiveRecord::Schema.define(version: 2020_09_25_035221) do
     t.bigint "target_account_id", null: false
     t.boolean "show_reblogs", default: true, null: false
     t.string "uri"
+    t.boolean "notify", default: false, null: false
     t.index ["account_id", "target_account_id"], name: "index_follows_on_account_id_and_target_account_id", unique: true
     t.index ["target_account_id"], name: "index_follows_on_target_account_id"
   end
@@ -600,8 +609,8 @@ ActiveRecord::Schema.define(version: 2020_09_25_035221) do
     t.datetime "updated_at", null: false
     t.bigint "account_id", null: false
     t.bigint "from_account_id", null: false
-    t.index ["account_id", "activity_id", "activity_type"], name: "account_activity", unique: true
-    t.index ["account_id", "id"], name: "index_notifications_on_account_id_and_id", order: { id: :desc }
+    t.string "type"
+    t.index ["account_id", "id", "type"], name: "index_notifications_on_account_id_and_id_and_type", order: { id: :desc }
     t.index ["activity_id", "activity_type"], name: "index_notifications_on_activity_id_and_activity_type"
     t.index ["from_account_id"], name: "index_notifications_on_from_account_id"
   end
@@ -1037,6 +1046,7 @@ ActiveRecord::Schema.define(version: 2020_09_25_035221) do
   add_foreign_key "account_aliases", "accounts", on_delete: :cascade
   add_foreign_key "account_conversations", "accounts", on_delete: :cascade
   add_foreign_key "account_conversations", "conversations", on_delete: :cascade
+  add_foreign_key "account_deletion_requests", "accounts", on_delete: :cascade
   add_foreign_key "account_domain_blocks", "accounts", name: "fk_206c6029bd", on_delete: :cascade
   add_foreign_key "account_domain_permissions", "accounts", on_delete: :cascade
   add_foreign_key "account_identity_proofs", "accounts", on_delete: :cascade