diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2019-10-30 23:22:38 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-10-30 23:22:38 +0300 | 
| commit | 1b82eb6d4102bc2d7acec0a905e7714c95eadc94 (patch) | |
| tree | 93dff415e1044076ffa58543a6a667b9e1d59236 /priv | |
| parent | d71907869908cbddf5b383bb93a00d27bdc7e58d (diff) | |
| download | pleroma-1b82eb6d4102bc2d7acec0a905e7714c95eadc94.tar.gz pleroma-1b82eb6d4102bc2d7acec0a905e7714c95eadc94.zip | |
move sql (update_markers) from migrate to mix task
Diffstat (limited to 'priv')
| -rw-r--r-- | priv/repo/migrations/20191021113356_add_unread_to_marker.exs | 46 | ||||
| -rw-r--r-- | priv/repo/migrations/20191030202008_add_unread_to_marker.exs | 18 | 
2 files changed, 18 insertions, 46 deletions
| diff --git a/priv/repo/migrations/20191021113356_add_unread_to_marker.exs b/priv/repo/migrations/20191021113356_add_unread_to_marker.exs deleted file mode 100644 index c15e2ff13..000000000 --- a/priv/repo/migrations/20191021113356_add_unread_to_marker.exs +++ /dev/null @@ -1,46 +0,0 @@ -defmodule Pleroma.Repo.Migrations.AddUnreadToMarker do -  use Ecto.Migration -  import Ecto.Query -  alias Pleroma.Repo -  alias Pleroma.Notification - -  def up do -    alter table(:markers) do -      add_if_not_exists(:unread_count, :integer, default: 0) -    end - -    flush() - -    update_markers() -  end - -  def down do -    alter table(:markers) do -      remove_if_exists(:unread_count, :integer) -    end -  end - -  def update_markers do -    from(q in Notification, -      select: %{ -        timeline: "notifications", -        user_id: q.user_id, -        unread_count: fragment("SUM( CASE WHEN seen = false THEN 1 ELSE 0 END )"), -        last_read_id: -          type(fragment("MAX( CASE WHEN seen = true THEN id ELSE null END )"), :string) -      }, -      group_by: [q.user_id] -    ) -    |> Repo.all() -    |> Enum.each(fn attrs -> -      Pleroma.Marker -      |> struct(attrs) -      |> Ecto.Changeset.change() -      |> Pleroma.Repo.insert( -        returning: true, -        on_conflict: {:replace, [:last_read_id, :unread_count]}, -        conflict_target: [:user_id, :timeline] -      ) -    end) -  end -end diff --git a/priv/repo/migrations/20191030202008_add_unread_to_marker.exs b/priv/repo/migrations/20191030202008_add_unread_to_marker.exs new file mode 100644 index 000000000..f81339c9f --- /dev/null +++ b/priv/repo/migrations/20191030202008_add_unread_to_marker.exs @@ -0,0 +1,18 @@ +defmodule Pleroma.Repo.Migrations.AddUnreadToMarker do +  use Ecto.Migration +  import Ecto.Query +  alias Pleroma.Repo +  alias Pleroma.Notification + +  def up do +    alter table(:markers) do +      add_if_not_exists(:unread_count, :integer, default: 0) +    end +  end + +  def down do +    alter table(:markers) do +      remove_if_exists(:unread_count, :integer) +    end +  end +end | 
