[#1112] Preserving `id` on user insert conflict on order not to violate conversation_...
authorIvan Tashkinov <ivantashkinov@gmail.com>
Sat, 20 Jul 2019 10:03:34 +0000 (13:03 +0300)
committerIvan Tashkinov <ivantashkinov@gmail.com>
Sat, 20 Jul 2019 10:03:34 +0000 (13:03 +0300)
CHANGELOG.md
lib/pleroma/user.ex

index 2e79b5420a3672f97c0f11a439b71c6ad6526cfe..f60f3ed978d576d12a2c8e0d75b764d4569e7543 100644 (file)
@@ -20,6 +20,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Mastodon API: Embedded relationships not being properly rendered in the Account entity of Status entity
 - Mastodon API: Add `account_id`, `type`, `offset`, and `limit` to search API (`/api/v1/search` and `/api/v2/search`)
 - ActivityPub C2S: follower/following collection pages being inaccessible even when authentifucated if `hide_followers`/ `hide_follows` was set
+- Existing user id not being preserved on insert conflict
 
 ### Added
 - MRF: Support for priming the mediaproxy cache (`Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`)
index c91fbb68a24b52fbf03f474b66ece5d82e8837dc..5ea2b518bc55c97c05b5eb730a7fa7e3f1472b6f 100644 (file)
@@ -1211,7 +1211,7 @@ defmodule Pleroma.User do
     data
     |> Map.put(:name, blank?(data[:name]) || data[:nickname])
     |> remote_user_creation()
-    |> Repo.insert(on_conflict: :replace_all, conflict_target: :nickname)
+    |> Repo.insert(on_conflict: :replace_all_except_primary_key, conflict_target: :nickname)
     |> set_cache()
   end