diff options
author | Fire Demon <firedemon@creature.cafe> | 2020-06-30 17:33:55 -0500 |
---|---|---|
committer | Fire Demon <firedemon@creature.cafe> | 2020-08-30 05:41:03 -0500 |
commit | eaf9bc1a428b338ee666f1da1e32eed7e3b6b25e (patch) | |
tree | aeec5fdde79d6e4fa354da326a540811b5576907 /db | |
parent | 5d5d88e4f65df4c190afeb407167c153584be108 (diff) |
[Feature] Add in-place post editing
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20200630222227_add_edited_to_statuses.rb | 10 | ||||
-rw-r--r-- | db/migrate/20200630222517_backfill_default_statuses_edited.rb | 14 | ||||
-rw-r--r-- | db/migrate/20200702032702_add_conversation_id_index_to_statuses.rb | 7 | ||||
-rw-r--r-- | db/schema.rb | 4 |
4 files changed, 34 insertions, 1 deletions
diff --git a/db/migrate/20200630222227_add_edited_to_statuses.rb b/db/migrate/20200630222227_add_edited_to_statuses.rb new file mode 100644 index 000000000..c0a5abb97 --- /dev/null +++ b/db/migrate/20200630222227_add_edited_to_statuses.rb @@ -0,0 +1,10 @@ +class AddEditedToStatuses < ActiveRecord::Migration[5.2] + def up + add_column :statuses, :edited, :int + change_column_default :statuses, :edited, 0 + end + + def down + remove_column :statuses, :edited + end +end diff --git a/db/migrate/20200630222517_backfill_default_statuses_edited.rb b/db/migrate/20200630222517_backfill_default_statuses_edited.rb new file mode 100644 index 000000000..cbcbd600b --- /dev/null +++ b/db/migrate/20200630222517_backfill_default_statuses_edited.rb @@ -0,0 +1,14 @@ +class BackfillDefaultStatusesEdited < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + + def up + Rails.logger.info('Backfilling "edited" column of table "statuses" to default value 0...') + Status.unscoped.in_batches do |statuses| + statuses.update_all(edited: 0) + end + end + + def down + true + end +end diff --git a/db/migrate/20200702032702_add_conversation_id_index_to_statuses.rb b/db/migrate/20200702032702_add_conversation_id_index_to_statuses.rb new file mode 100644 index 000000000..f35a2fc99 --- /dev/null +++ b/db/migrate/20200702032702_add_conversation_id_index_to_statuses.rb @@ -0,0 +1,7 @@ +class AddConversationIdIndexToStatuses < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + + def change + safety_assured { add_index :statuses, :conversation_id, where: 'deleted_at IS NULL', algorithm: :concurrently, name: :index_statuses_on_conversation_id } + end +end diff --git a/db/schema.rb b/db/schema.rb index d2767752a..7b17b2128 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_06_28_133322) do +ActiveRecord::Schema.define(version: 2020_07_02_032702) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -785,7 +785,9 @@ ActiveRecord::Schema.define(version: 2020_06_28_133322) do t.bigint "poll_id" t.string "content_type" t.datetime "deleted_at" + t.integer "edited", default: 0 t.index ["account_id", "id", "visibility", "updated_at"], name: "index_statuses_20190820", order: { id: :desc }, where: "(deleted_at IS NULL)" + t.index ["conversation_id"], name: "index_statuses_on_conversation_id", where: "(deleted_at IS NULL)" t.index ["id", "account_id"], name: "index_statuses_local_20190824", order: { id: :desc }, where: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" t.index ["id", "account_id"], name: "index_statuses_public_20200119", order: { id: :desc }, where: "((deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" t.index ["in_reply_to_account_id"], name: "index_statuses_on_in_reply_to_account_id" |