Add optimize maintenance function

This commit is contained in:
Claudio Ortolina
2025-12-15 10:22:20 +03:00
parent dfb9a4791a
commit 162a38b62e
5 changed files with 64 additions and 7 deletions
+2
View File
@@ -35,4 +35,6 @@ defmodule MusicLibrary.Repo do
end
def vacuum, do: query("VACUUM")
def optimize, do: query("PRAGMA optimize")
end
@@ -109,4 +109,20 @@ defmodule MusicLibraryWeb.MaintenanceLive.Index do
|> put_toast(:error, "Database vacuum failed: #{inspect(reason)}.")}
end
end
def handle_event("db_optimize", _params, socket) do
case Repo.optimize() do
{:ok, _result} ->
{:noreply,
socket
|> put_toast(:info, gettext("Database optimized successfully."))}
{:error, reason} ->
Logger.error("Database optimize failed: #{inspect(reason)}.")
{:noreply,
socket
|> put_toast(:error, "Database optimize failed: #{inspect(reason)}.")}
end
end
end
@@ -91,6 +91,7 @@
</p>
<ul class="mt-4">
<li class="space-y-4">
<.button_group>
<.button
type="button"
phx-click="db_vacuum"
@@ -98,6 +99,14 @@
>
{gettext("Vacuum")}
</.button>
<.button
type="button"
phx-click="db_optimize"
phx-disable-with={gettext("Running optimize...")}
>
{gettext("Optimize")}
</.button>
</.button_group>
</li>
</ul>
</div>
+15
View File
@@ -1665,3 +1665,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Apply"
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.ex
#, elixir-autogen, elixir-format
msgid "Database optimized successfully."
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.html.heex
#, elixir-autogen, elixir-format
msgid "Optimize"
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.html.heex
#, elixir-autogen, elixir-format
msgid "Running optimize..."
msgstr ""
+15
View File
@@ -1665,3 +1665,18 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy
msgid "Apply"
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Database optimized successfully."
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.html.heex
#, elixir-autogen, elixir-format
msgid "Optimize"
msgstr ""
#: lib/music_library_web/live/maintenance_live/index.html.heex
#, elixir-autogen, elixir-format
msgid "Running optimize..."
msgstr ""