2020-05-27 21:40:51 +00:00
|
|
|
# Pleroma: A lightweight social networking server
|
2021-01-13 06:49:20 +00:00
|
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
2020-05-27 21:40:51 +00:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
defmodule Pleroma.Maintenance do
|
|
|
|
alias Pleroma.Repo
|
|
|
|
require Logger
|
|
|
|
|
|
|
|
def vacuum(args) do
|
|
|
|
case args do
|
|
|
|
"analyze" ->
|
2021-10-06 15:49:25 +00:00
|
|
|
Logger.info("Running VACUUM ANALYZE.")
|
2020-05-27 21:40:51 +00:00
|
|
|
|
|
|
|
Repo.query!(
|
|
|
|
"vacuum analyze;",
|
|
|
|
[],
|
|
|
|
timeout: :infinity
|
|
|
|
)
|
|
|
|
|
|
|
|
"full" ->
|
2021-10-06 15:49:25 +00:00
|
|
|
Logger.info("Running VACUUM FULL.")
|
2020-05-27 21:40:51 +00:00
|
|
|
|
2023-08-01 10:43:50 +00:00
|
|
|
Logger.warning(
|
2020-05-27 21:40:51 +00:00
|
|
|
"Re-packing your entire database may take a while and will consume extra disk space during the process."
|
|
|
|
)
|
|
|
|
|
|
|
|
Repo.query!(
|
|
|
|
"vacuum full;",
|
|
|
|
[],
|
|
|
|
timeout: :infinity
|
|
|
|
)
|
|
|
|
|
|
|
|
_ ->
|
|
|
|
Logger.error("Error: invalid vacuum argument.")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|