Skip to content

ecto.migrate failed with FunctionClauseError

Linux 4.15.0-70-generic 
Ubuntu 18.04.3 LTS
Erlang/OTP 22 [erts-10.5.5] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Elixir 1.9.4 (compiled with Erlang/OTP 21)

I've just attempted to upgrade my very small instance that hasn't been upgraded in quite some time. ecto.migrate is failing with the message:

Generated pleroma app
warning: unused alias User
  _build/prod/lib/pleroma/priv/repo/migrations/20190711042021_create_safe_jsonb_set.exs:3


19:09:42.506 [info]  == Running 20190710125158 Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData.change/0 forward
** (FunctionClauseError) no function clause matching in anonymous fn/1 in Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData.change/0    
    
    The following arguments were given to anonymous fn/1 in Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData.change/0:
    
        # 1
        %Pleroma.User{hide_followers: false, invisible: false, background: %{}, search_rank: nil, no_rich_text: false, show_role: true, hide_follows: false, keys: nil, is_moderator: false, id: "6", ap_enabled: false, updated_at: nil, email: nil, deliveries: #Ecto.Association.NotLoaded<association :deliveries is not loaded>, unread_conversation_count: 0, settings: nil, search_type: nil, is_admin: false, password_hash: nil, registrations: #Ecto.Association.NotLoaded<association :registrations is not loaded>, notifications: #Ecto.Association.NotLoaded<association :notifications is not loaded>, discoverable: false, password_confirmation: nil, locked: false, mascot: nil, muted_reblogs: [], pleroma_settings_store: %{}, nickname: nil, local: true, domain_blocks: [], follower_count: 0, subscribers: [], ap_id: "https://shitposter.club/users/moonman", last_digest_emailed_at: nil, following_address: nil, blocks: [], following_count: nil, source_data: %{}, note_count: 0, name: nil, info: %{"confirmation_token" => nil, "hide_favorites" => true, "keys" => nil, "locked" => false, "hub" => nil, "blocks" => [], "note_count" => 12214, "settings" => nil, "mutes" => [], ...}, bio: nil, email_notifications: %{"digest" => false}, mutes: [], last_refreshed_at: nil, confirmation_token: nil, hide_favorites: true, __meta__: #Ecto.Schema.Metadata<:loaded, "users">, hide_follows_count: false, emoji: [], ...}
    
    anonymous fn/1 in Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData.change/0
    (elixir) lib/enum.ex:789: anonymous fn/3 in Enum.each/2
    (elixir) lib/enum.ex:3023: anonymous fn/3 in Enum.each/2
    (elixir) lib/stream.ex:1571: anonymous fn/3 in Enumerable.Stream.reduce/3
    (elixir) lib/enum.ex:3325: Enumerable.List.reduce/3
    (elixir) lib/stream.ex:927: Stream.do_list_transform/7
    (elixir) lib/stream.ex:1583: Enumerable.Stream.do_each/4
    (elixir) lib/enum.ex:3023: Enum.each/2

Are there any resources on recovering from this while preserving data or manually migrating?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information