Powered by AppSignal & Oban Pro

Merge Agents

merge_agents.livemd

Merge Agents

use QuickAlias, MyAppWeb
use QuickAlias, MyAppBe
use QuickAlias, MyApp

import Ecto.Query
require Ash.Query

Section

to_delete = Agent.get_by_id!("ag_02wISBzXQj8ZDdDP1gecVB")
to_keep = Agent.get_by_id!("ag_02v0lSPez5VrEAVr5apxGe")
merged_data = MyApp.Agents.merge_agent_attributes(to_delete, to_keep)
merged_data.names
# remove slug to prevent errors on slug duplication
to_delete
|> Ash.Changeset.for_update(:update, %{slug: nil})
|> Ash.update!()

MyApp.Agents.move_arrows(to_delete.id, to_keep.id)
# write result:

to_keep
|> Ash.Changeset.for_update(:update, merged_data)
|> Ash.update!()