projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'chore/improve-database-config-docs' into 'develop'
[akkoma]
/
lib
/
mix
/
tasks
/
pleroma
/
database.ex
diff --git
a/lib/mix/tasks/pleroma/database.ex
b/lib/mix/tasks/pleroma/database.ex
index cfd9eeada46ced0fd7a3449e59c45fe89f8aac82..82e2abdcbd9a2056441430000caf6a8d695a1841 100644
(file)
--- a/
lib/mix/tasks/pleroma/database.ex
+++ b/
lib/mix/tasks/pleroma/database.ex
@@
-1,9
+1,10
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-20
19
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-20
20
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Database do
alias Pleroma.Conversation
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Database do
alias Pleroma.Conversation
+ alias Pleroma.Maintenance
alias Pleroma.Object
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Object
alias Pleroma.Repo
alias Pleroma.User
@@
-28,19
+29,13
@@
defmodule Mix.Tasks.Pleroma.Database do
Logger.info("Removing embedded objects")
Repo.query!(
Logger.info("Removing embedded objects")
Repo.query!(
- "update activities set data = jsonb_set(data, '{object}'::text[], data->'object'->'id') where data->'object'->>'id' is not null;",
+ "update activities set data =
safe_
jsonb_set(data, '{object}'::text[], data->'object'->'id') where data->'object'->>'id' is not null;",
[],
timeout: :infinity
)
if Keyword.get(options, :vacuum) do
[],
timeout: :infinity
)
if Keyword.get(options, :vacuum) do
- Logger.info("Runnning VACUUM FULL")
-
- Repo.query!(
- "vacuum full;",
- [],
- timeout: :infinity
- )
+ Maintenance.vacuum("full")
end
end
end
end
@@
-52,9
+47,9
@@
defmodule Mix.Tasks.Pleroma.Database do
def run(["update_users_following_followers_counts"]) do
start_pleroma()
def run(["update_users_following_followers_counts"]) do
start_pleroma()
- users = Repo.all(User)
-
Enum.each(users, &User.remove_duplicated_following/1
)
-
Enum.each(users,
&User.update_follower_count/1)
+ User
+
|> Repo.all(
)
+
|> Enum.each(
&User.update_follower_count/1)
end
def run(["prune_objects" | args]) do
end
def run(["prune_objects" | args]) do
@@
-94,13
+89,7
@@
defmodule Mix.Tasks.Pleroma.Database do
|> Repo.delete_all(timeout: :infinity)
if Keyword.get(options, :vacuum) do
|> Repo.delete_all(timeout: :infinity)
if Keyword.get(options, :vacuum) do
- Logger.info("Runnning VACUUM FULL")
-
- Repo.query!(
- "vacuum full;",
- [],
- timeout: :infinity
- )
+ Maintenance.vacuum("full")
end
end
end
end
@@
-126,7
+115,7
@@
defmodule Mix.Tasks.Pleroma.Database do
set: [
data:
fragment(
set: [
data:
fragment(
- "jsonb_set(?, '{likes}', '[]'::jsonb, true)",
+ "
safe_
jsonb_set(?, '{likes}', '[]'::jsonb, true)",
object.data
)
]
object.data
)
]
@@
-135,4
+124,10
@@
defmodule Mix.Tasks.Pleroma.Database do
end)
|> Stream.run()
end
end)
|> Stream.run()
end
+
+ def run(["vacuum", args]) do
+ start_pleroma()
+
+ Maintenance.vacuum(args)
+ end
end
end