aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-07-14 12:00:53 +0300
committerrinpatch <rinpatch@sdf.org>2020-07-14 13:15:46 +0300
commit8d56fb6d223995de3f753eeef9475583e2b1e6ad (patch)
tree94b1e215b15b1a055423aeea9d89af24ef6db325
parent5d215fd81f529b639db9096ca71d4e7f0a6ed386 (diff)
downloadpleroma-8d56fb6d223995de3f753eeef9475583e2b1e6ad.tar.gz
Migrate in-db config after updating to Oban 2.0
-rw-r--r--docs/configuration/cheatsheet.md3
-rw-r--r--priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs27
2 files changed, 28 insertions, 2 deletions
diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md
index f796330f1..7b1fd92f3 100644
--- a/docs/configuration/cheatsheet.md
+++ b/docs/configuration/cheatsheet.md
@@ -629,8 +629,7 @@ Email notifications settings.
Configuration options described in [Oban readme](https://github.com/sorentwo/oban#usage):
* `repo` - app's Ecto repo (`Pleroma.Repo`)
-* `verbose` - logs verbosity
-* `prune` - non-retryable jobs [pruning settings](https://github.com/sorentwo/oban#pruning) (`:disabled` / `{:maxlen, value}` / `{:maxage, value}`)
+* `log` - logs verbosity
* `queues` - job queues (see below)
* `crontab` - periodic jobs, see [`Oban.Cron`](#obancron)
diff --git a/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs
new file mode 100644
index 000000000..c54bb2511
--- /dev/null
+++ b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs
@@ -0,0 +1,27 @@
+defmodule Elixir.Pleroma.Repo.Migrations.Oban20ConfigChanges do
+ use Ecto.Migration
+ import Ecto.Query
+ alias Pleroma.ConfigDB
+ alias Pleroma.Repo
+
+ def change do
+ config_entry =
+ from(c in ConfigDB, where: c.group == ^":pleroma" and c.key == ^"Oban")
+ |> select([c], struct(c, [:value, :id]))
+ |> Repo.one()
+
+ if config_entry do
+ %{value: value} = config_entry
+
+ value =
+ case Keyword.fetch(value, :verbose) do
+ {:ok, log} -> Keyword.put_new(value, :log, log)
+ _ -> value
+ end
+ |> Keyword.drop([:verbose, :prune])
+
+ Ecto.Changeset.change(config_entry, %{value: value})
+ |> Repo.update()
+ end
+ end
+end