move to 2.5.5
[anni] / priv / repo / migrations / 20200328193433_populate_user_raw_bio.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Repo.Migrations.PopulateUserRawBio do
6   use Ecto.Migration
7   import Ecto.Query
8   alias Pleroma.User
9   alias Pleroma.Repo
10
11   def change do
12     {:ok, _} = Application.ensure_all_started(:fast_sanitize)
13
14     User.Query.build(%{local: true})
15     |> select([u], struct(u, [:id, :ap_id, :bio]))
16     |> Repo.stream()
17     |> Enum.each(fn %{bio: bio} = user ->
18       if bio do
19         raw_bio =
20           bio
21           |> String.replace(~r(<br */?>), "\n")
22           |> Pleroma.HTML.strip_tags()
23
24         Ecto.Changeset.cast(user, %{raw_bio: raw_bio}, [:raw_bio])
25         |> Repo.update()
26       end
27     end)
28   end
29 end