Page MenuHomePhorge

No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/priv/repo/migrations/20201012093959_create_tags.exs b/priv/repo/migrations/20201012093959_create_tags.exs
index 66e26f9a2..4f59f7bce 100644
--- a/priv/repo/migrations/20201012093959_create_tags.exs
+++ b/priv/repo/migrations/20201012093959_create_tags.exs
@@ -1,28 +1,33 @@
defmodule Pleroma.Repo.Migrations.CreateTags do
use Ecto.Migration
def up do
create_if_not_exists table(:tags) do
add(:name, :string, null: false)
timestamps()
end
create_if_not_exists(unique_index(:tags, :name))
flush()
- execute(collect_user_tags_query())
+ Ecto.Adapters.SQL.query(
+ Pleroma.Repo,
+ collect_user_tags_query(),
+ [],
+ timeout: :infinity
+ )
end
def down do
drop_if_exists(table(:tags))
drop_if_exists(unique_index(:tags, :name))
end
defp collect_user_tags_query do
"""
INSERT INTO tags(name, inserted_at, updated_at)
SELECT DISTINCT TRIM(unnest(tags)), now(), now() from users
ON CONFLICT DO NOTHING
"""
end
end
diff --git a/priv/repo/migrations/20201021180413_import_legacy_tags_to_users_tags.exs b/priv/repo/migrations/20201021180413_import_legacy_tags_to_users_tags.exs
index 0cdcc5c19..a3a606fe2 100644
--- a/priv/repo/migrations/20201021180413_import_legacy_tags_to_users_tags.exs
+++ b/priv/repo/migrations/20201021180413_import_legacy_tags_to_users_tags.exs
@@ -1,55 +1,65 @@
defmodule Pleroma.Repo.Migrations.ImportLegacyTagsToUsersTags do
use Ecto.Migration
def up do
- execute(import_user_tags())
+ Ecto.Adapters.SQL.query(
+ Pleroma.Repo,
+ import_user_tags(),
+ [],
+ timeout: :infinity
+ )
alter table(:users) do
remove_if_exists(:tags, {:array, :string})
end
drop_if_exists(index(:users, [:tags]))
end
def down do
alter table(:users) do
add_if_not_exists(:tags, {:array, :string}, default: [], null: false)
end
create_if_not_exists(index(:users, [:tags], using: :gin))
flush()
- execute(restore_tags_column())
+ Ecto.Adapters.SQL.query(
+ Pleroma.Repo,
+ restore_tags_column(),
+ [],
+ timeout: :infinity
+ )
end
defp import_user_tags do
"""
INSERT INTO users_tags(user_id, tag_id)
SELECT user_tags.user_id, tags.id
FROM (
SELECT DISTINCT TRIM(unnest(tags)) as "tag", id as "user_id"
FROM users ) as "user_tags"
INNER JOIN tags as tags on tags.name = user_tags."tag"
ON CONFLICT DO NOTHING
"""
end
defp restore_tags_column do
"""
UPDATE
users
SET
tags = tags_query.tags_array,
updated_at = now()
FROM (
SELECT user_id, array_agg(tags.name) as tags_array
FROM users_tags
INNER JOIN users ON users.id = user_id
INNER JOIN tags ON tags.id = tag_id
GROUP BY user_id
) as tags_query
WHERE tags_query.user_id = users.id
"""
end
end

File Metadata

Mime Type
text/x-diff
Expires
Sat, Aug 29, 8:59 PM (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1737373
Default Alt Text
(2 KB)

Event Timeline