User, Migration: Change `accepts_chat_messages` to be nullable
authorlain <lain@soykaf.club>
Fri, 3 Jul 2020 11:12:23 +0000 (13:12 +0200)
committerlain <lain@soykaf.club>
Fri, 3 Jul 2020 11:12:23 +0000 (13:12 +0200)
This is to model the ambiguous state of most users.

lib/pleroma/user.ex
priv/repo/migrations/20200703101031_add_chat_acceptance_to_users.exs

index 79e094a7951b3974499806b99260f9c2d044ed81..7a684b1924aa3e7864fe57a097913200a3d70753 100644 (file)
@@ -138,7 +138,7 @@ defmodule Pleroma.User do
     field(:also_known_as, {:array, :string}, default: [])
     field(:inbox, :string)
     field(:shared_inbox, :string)
-    field(:accepts_chat_messages, :boolean, default: false)
+    field(:accepts_chat_messages, :boolean, default: nil)
 
     embeds_one(
       :notification_settings,
index 4ae3c42019832d4e70a61bf93425b3d04226a083..8dfda89f117fd359ffa25e0416629e080b58ca33 100644 (file)
@@ -1,12 +1,17 @@
 defmodule Pleroma.Repo.Migrations.AddChatAcceptanceToUsers do
   use Ecto.Migration
 
-  def change do
+  def up do
     alter table(:users) do
-      add(:accepts_chat_messages, :boolean, nullable: false, default: false)
+      add(:accepts_chat_messages, :boolean, nullable: true)
     end
 
-    # Looks stupid but makes the update much faster
-    execute("update users set accepts_chat_messages = local where local = true")
+    execute("update users set accepts_chat_messages = true where local = true")
+  end
+
+  def down do
+    alter table(:users) do
+      remove(:accepts_chat_messages)
+    end
   end
 end