Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F85649881
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
View Options
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
Details
Attached
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)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment