Explorar el Código

Notification: Change type of `type` to an enum.

1570-levenshtein-distance-user-search
lain hace 4 años
padre
commit
9fa3f0b156
Se han modificado 2 ficheros con 39 adiciones y 0 borrados
  1. +3
    -0
      lib/pleroma/notification.ex
  2. +36
    -0
      priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs

+ 3
- 0
lib/pleroma/notification.ex Ver fichero

@@ -30,6 +30,9 @@ defmodule Pleroma.Notification do

schema "notifications" do
field(:seen, :boolean, default: false)
# This is an enum type in the database. If you add a new notification type,
# remembert to add a migration to add it to the `notifications_type` enum
# as well.
field(:type, :string)
belongs_to(:user, User, type: FlakeId.Ecto.CompatType)
belongs_to(:activity, Activity, type: FlakeId.Ecto.CompatType)


+ 36
- 0
priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs Ver fichero

@@ -0,0 +1,36 @@
defmodule Pleroma.Repo.Migrations.ChangeTypeToEnumForNotifications do
use Ecto.Migration

def up do
"""
create type notification_type as enum (
'follow',
'follow_request',
'mention',
'move',
'pleroma:emoji_reaction',
'pleroma:chat_mention',
'reblog',
'favourite'
)
"""
|> execute()

"""
alter table notifications
alter column type type notification_type using (type::notification_type)
"""
|> execute()
end

def down do
alter table(:notifications) do
modify(:type, :string)
end

"""
drop type notification_type
"""
|> execute()
end
end

Cargando…
Cancelar
Guardar