analytics / lib /mix /tasks /clean_postgres.ex
Leon4gr45's picture
Upload folder using huggingface_hub
3e21b19 verified
Raw
History Blame Contribute Delete
718 Bytes
defmodule Mix.Tasks.CleanPostgres do
@moduledoc false
use Mix.Task
alias Plausible.Repo
def run(_) do
case Plausible.Repo.start_link(pool_size: 1, log: false) do
{:ok, _} -> :pass
{:error, {:already_started, _pid}} -> :pass
{:error, _} = error -> throw(error)
end
query = """
SELECT tablename
FROM pg_catalog.pg_tables
WHERE schemaname != 'pg_catalog' AND
schemaname != 'information_schema';
"""
%{rows: rows} = Repo.query!(query)
tables = Enum.map(rows, fn [table] -> table end)
Enum.each(tables -- ["schema_migrations"], fn table ->
Repo.query!("truncate #{table} cascade")
end)
after
Plausible.Repo.stop(500)
end
end