[#468] OAuth scopes-related data migration simplification.
authorIvan Tashkinov <ivantashkinov@gmail.com>
Thu, 14 Feb 2019 11:28:26 +0000 (14:28 +0300)
committerIvan Tashkinov <ivantashkinov@gmail.com>
Thu, 14 Feb 2019 11:28:26 +0000 (14:28 +0300)
priv/repo/migrations/20190209123318_data_migration_populate_o_auth_scopes.exs [deleted file]
priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs [new file with mode: 0644]

diff --git a/priv/repo/migrations/20190209123318_data_migration_populate_o_auth_scopes.exs b/priv/repo/migrations/20190209123318_data_migration_populate_o_auth_scopes.exs
deleted file mode 100644 (file)
index 30b10f5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-defmodule Pleroma.Repo.Migrations.DataMigrationPopulateOAuthScopes do
-  use Ecto.Migration
-
-  require Ecto.Query
-
-  alias Ecto.Query
-  alias Pleroma.Repo
-  alias Pleroma.Web.OAuth
-  alias Pleroma.Web.OAuth.{App, Authorization, Token}
-
-  def up do
-    for app <- Repo.all(Query.from(app in App)) do
-      scopes = OAuth.parse_scopes(app.scopes)
-
-      Repo.update_all(
-        Query.from(auth in Authorization, where: auth.app_id == ^app.id),
-        set: [scopes: scopes]
-      )
-
-      Repo.update_all(
-        Query.from(token in Token, where: token.app_id == ^app.id),
-        set: [scopes: scopes]
-      )
-    end
-  end
-
-  def down, do: :noop
-end
diff --git a/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs b/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs
new file mode 100644 (file)
index 0000000..7afbcbd
--- /dev/null
@@ -0,0 +1,11 @@
+defmodule Pleroma.Repo.Migrations.DataMigrationPopulateOAuthScopes do
+  use Ecto.Migration
+
+  def up do
+    for t <- [:oauth_authorizations, :oauth_tokens] do
+      execute "UPDATE #{t} SET scopes = apps.scopes FROM apps WHERE #{t}.app_id = apps.id;"
+    end
+  end
+
+  def down, do: :noop
+end