fixed migration the settings to DB
authorMaksim Pechnikov <parallel588@gmail.com>
Wed, 17 Jun 2020 06:15:35 +0000 (09:15 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Wed, 17 Jun 2020 06:15:35 +0000 (09:15 +0300)
lib/mix/tasks/pleroma/config.ex
lib/pleroma/config/loader.ex
priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs

index f1b3a8766f12b720387537f2617acb5eeb073d04..65691f9c1df91c1d982a3494371d37e842a0a936 100644 (file)
@@ -52,6 +52,7 @@ defmodule Mix.Tasks.Pleroma.Config do
 
   defp do_migrate_to_db(config_file) do
     if File.exists?(config_file) do
+      shell_info("Running migrate settings from file: #{Path.expand(config_file)}")
       Ecto.Adapters.SQL.query!(Repo, "TRUNCATE config;")
       Ecto.Adapters.SQL.query!(Repo, "ALTER SEQUENCE config_id_seq RESTART;")
 
index 0f3ecf1ede46fc07d0cbc589411439d942763187..76559e70c66e18d98016914c91ecab7fe4c21ff9 100644 (file)
@@ -8,7 +8,6 @@ defmodule Pleroma.Config.Loader do
     Pleroma.Web.Endpoint,
     :env,
     :configurable_from_database,
-    :database,
     :swarm
   ]
 
index 6227769dccc8081cce8a343109c3b9cce235dbd3..79bde163d286f575a92753856f7ae845f042514c 100644 (file)
@@ -2,24 +2,29 @@ defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do
   use Ecto.Migration
 
   def up do
-    execute("create extension if not exists rum")
-    drop_if_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts)
-    alter table(:objects) do
-      add(:fts_content, :tsvector)
-    end
+    if Pleroma.Config.get([:database, :rum_enabled]) do
+      execute("create extension if not exists rum")
+      drop_if_exists index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts)
+      alter table(:objects) do
+        add(:fts_content, :tsvector)
+      end
 
-    execute("CREATE FUNCTION objects_fts_update() RETURNS trigger AS $$
-    begin
+      execute("CREATE FUNCTION objects_fts_update() RETURNS trigger AS $$
+      begin
       new.fts_content := to_tsvector('english', new.data->>'content');
       return new;
-    end
-    $$ LANGUAGE plpgsql")
-    execute("create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');")
+      end
+      $$ LANGUAGE plpgsql")
+      execute("create index if not exists objects_fts on objects using RUM (fts_content rum_tsvector_addon_ops, inserted_at) with (attach = 'inserted_at', to = 'fts_content');")
 
-    execute("CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON objects
-    FOR EACH ROW EXECUTE PROCEDURE objects_fts_update()")
+      execute("CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON objects
+      FOR EACH ROW EXECUTE PROCEDURE objects_fts_update()")
 
-    execute("UPDATE objects SET updated_at = NOW()")
+      execute("UPDATE objects SET updated_at = NOW()")
+    else
+        raise Ecto.MigrationError,
+          message: "Migration is not allowed. You can change this behavior by setting `database/rum_enabled` to true."
+    end
   end
 
   def down do