Rename index for faster database restore #455
1 changed files with 23 additions and 0 deletions
|
@ -0,0 +1,23 @@
|
|||
defmodule Pleroma.Repo.Migrations.RenameIndexUsersApId_COALESCEFollowerAddressIndex do
|
||||
alias Pleroma.Repo
|
||||
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# By default Postgresql first restores the data and then the indexes when dumping and restoring the database.
|
||||
# Restoring index activities_visibility_index took a very long time.
|
||||
# users_ap_id_COALESCE_follower_address_index was later added because having this could speed up the restoration tremendously.
|
||||
# The problem now is that restoration apparently happens in alphabetical order, so this new index wasn't created yet
|
||||
# by the time activities_visibility_index needed it.
|
||||
# There were several work-arounds which included more complex steps during backup/restore.
|
||||
# By renaming this index, it should be restored first and thus activities_visibility_index can make use of it.
|
||||
# This speeds up restoration significantly without requiring more complex or unexpected steps from people.
|
||||
Repo.query!("ALTER INDEX public.\"users_ap_id_COALESCE_follower_address_index\"
|
||||
RENAME TO \"aa_users_ap_id_COALESCE_follower_address_index\";")
|
||||
end
|
||||
|
||||
def down do
|
||||
Repo.query!("ALTER INDEX public.\"aa_users_ap_id_COALESCE_follower_address_index\"
|
||||
RENAME TO \"users_ap_id_COALESCE_follower_address_index\";")
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue