Update activities in own migration.
authorRoger Braun <rbraun@Bobble.local>
Thu, 9 Nov 2017 12:32:53 +0000 (13:32 +0100)
committerRoger Braun <rbraun@Bobble.local>
Thu, 9 Nov 2017 12:32:53 +0000 (13:32 +0100)
priv/repo/migrations/20171109091239_add_actor_to_activity.exs
priv/repo/migrations/20171109114020_fill_actor_field.exs [new file with mode: 0644]

index c04922c7684d1b9bb19208d4f7a10b866ca852d5..2d8b60a918c1045af786468779a21b99246d43de 100644 (file)
@@ -1,8 +1,6 @@
 defmodule Pleroma.Repo.Migrations.AddActorToActivity do
   use Ecto.Migration
 
-  alias Pleroma.{Repo, Activity}
-
   @disable_ddl_transaction true
 
   def up do
@@ -10,19 +8,6 @@ defmodule Pleroma.Repo.Migrations.AddActorToActivity do
       add :actor, :string
     end
 
-    max = Repo.aggregate(Activity, :max, :id)
-    IO.puts("#{max} activities")
-    chunks = 0..(round(max / 10_000))
-
-    Enum.each(chunks, fn (i) ->
-      min = i * 10_000
-      max = min + 10_000
-      IO.puts("Updating #{min}")
-      execute """
-        update activities set actor = data->>'actor' where id > #{min} and id <= #{max};
-      """
-    end)
-
     create index(:activities, [:actor, "id DESC NULLS LAST"], concurrently: true)
   end
 
diff --git a/priv/repo/migrations/20171109114020_fill_actor_field.exs b/priv/repo/migrations/20171109114020_fill_actor_field.exs
new file mode 100644 (file)
index 0000000..d4ac601
--- /dev/null
@@ -0,0 +1,25 @@
+defmodule Pleroma.Repo.Migrations.FillActorField do
+  use Ecto.Migration
+
+  alias Pleroma.{Repo, Activity}
+
+  def up do
+    max = Repo.aggregate(Activity, :max, :id)
+    IO.puts("#{max} activities")
+    chunks = 0..(round(max / 10_000))
+
+    Enum.each(chunks, fn (i) ->
+      min = i * 10_000
+      max = min + 10_000
+      IO.puts("Updating #{min}")
+      execute("""
+        update activities set actor = data->>'actor' where id > #{min} and id <= #{max};
+      """)
+      |> IO.inspect
+    end)
+  end
+
+  def down do
+  end
+end
+