Document how to delete individual configuration groups and completely reset the confi...
authorMark Felder <feld@FreeBSD.org>
Wed, 25 Nov 2020 23:31:44 +0000 (17:31 -0600)
committerMark Felder <feld@FreeBSD.org>
Wed, 2 Dec 2020 16:43:22 +0000 (10:43 -0600)
docs/configuration/howto_database_config.md
lib/mix/tasks/pleroma/config.ex

index 9ed4d6cddd41d117339da3703dd24d5cbac07023..d85b46bd1bda15cd17f4e8f86c331701d866c63b 100644 (file)
@@ -140,14 +140,24 @@ If you encounter a situation where the server cannot run properly because of an
 e.g., here is an example showing a minimal configuration in the database. Only the `config :pleroma, :instance` settings are in the table:
 
 ```
-psql -d pleroma_dev
-pleroma_dev=# select * from config;
- id |    key    |                           value                            |     inserted_at     |     updated_at      |  group
-----+-----------+------------------------------------------------------------+---------------------+---------------------+----------
-  1 | :instance | \x836c0000000168026400046e616d656d00000007426c65726f6d616a | 2020-07-12 15:33:29 | 2020-07-12 15:33:29 | :pleroma
-(1 row)
-pleroma_dev=# delete from config where key = ':instance' and group = ':pleroma';
-DELETE 1
+$ mix pleroma.config keylist
+The following configuration keys are set in ConfigDB:
+
+-  instance
+
+```
+
+```
+$ mix pleroma.config show instance
+config :pleroma, :instance, [name: "MyPleroma", description: "A fun place to hang out!", notify_email: "no-reply@mypleroma.com", email: "admin@mypleroma.com", account_activation_required: true]
+
+```
+
+To delete the saved settings for `:instance`:
+
+```
+$ mix pleroma.config keydel instance
+instance deleted from the ConfigDB.
 ```
 
 Now the `config :pleroma, :instance` settings have been removed from the database.
index 675dda0d0541486f63316988486127c64f24c606..574f8f4beb11271e3c2b269168add3f7f1e960f8 100644 (file)
@@ -83,6 +83,19 @@ defmodule Mix.Tasks.Pleroma.Config do
     end
   end
 
+  def run(["reset"]) do
+    with true <- Pleroma.Config.get([:configurable_from_database]) do
+      start_pleroma()
+
+      Ecto.Adapters.SQL.query!(Repo, "TRUNCATE config;")
+      Ecto.Adapters.SQL.query!(Repo, "ALTER SEQUENCE config_id_seq RESTART;")
+
+      shell_info("The ConfigDB settings have been removed from the database.")
+    else
+      _ -> configdb_not_enabled()
+    end
+  end
+
   def run(["keydel" | dbkey]) do
     unless [] == dbkey do
       with true <- Pleroma.Config.get([:configurable_from_database]) do