postland/lib/postland_web/controllers/export_controller.ex

17 lines
560 B
Elixir
Raw Normal View History

2024-09-30 00:53:00 +00:00
defmodule PostlandWeb.ExportController do
use PostlandWeb, :controller
def export(conn, _params) do
db_path = Postland.Repo.config() |> Keyword.get(:database)
dirname = Path.dirname(db_path)
filename = Path.basename(db_path)
files = [filename, "#{filename}-shm", "#{filename}-wal"] |> Enum.map(&String.to_charlist/1)
zip_path = Path.join([File.cwd!(), "priv", "tmp", "db-export.zip"])
2024-10-14 01:02:59 +00:00
:zip.create(String.to_charlist(zip_path), files, cwd: dirname)
2024-09-30 00:53:00 +00:00
send_download(conn, {:file, zip_path}, filename: "db-export.zip")
end
end