Closed Meow closed 2 years ago
Philomena.Elasticsearch.update_mapping!(Philomena.Images.Image) Philomena.Elasticsearch.update_mapping!(Philomena.Posts.Post) Philomena.Elasticsearch.update_mapping!(Philomena.Comments.Comment) Philomena.Elasticsearch.update_mapping!(Philomena.Reports.Report)
Philomena.Repo.insert(Philomena.Roles.Role.changeset(%Philomena.Roles.Role{name: "admin", resource_type: "Image"}, %{}), on_conflict: :nothing)
alias Philomena.{Posts, Comments, Images, Reports, Reports.Report} alias Philomena.Elasticsearch alias Philomena.Polymorphic
mods = [ [Images, Images.Image], [Comments, Comments.Comment], [Posts, Posts.Post] ]
Enum.each(mods, fn [m, mod] -> IO.puts("Reindexing #{to_string(m)}")
entries = if m == Comments do mod |> where([c], not is_nil(c.image_id)) |> preload(^m.indexing_preloads()) else mod |> preload(^m.indexing_preloads()) end
Elasticsearch.reindex(entries, mod, batch_size: 100) end)
(Report |> preload([:user, :admin]) |> Repo.all() |> Polymorphic.load_polymorphic(reportable: [reportable_id: :reportable_type]) |> Enum.map(&Elasticsearch.index_document(&1, Report)))
Migration instructions
mods = [ [Images, Images.Image], [Comments, Comments.Comment], [Posts, Posts.Post] ]
Enum.each(mods, fn [m, mod] -> IO.puts("Reindexing #{to_string(m)}")
entries = if m == Comments do mod |> where([c], not is_nil(c.image_id)) |> preload(^m.indexing_preloads()) else mod |> preload(^m.indexing_preloads()) end
Elasticsearch.reindex(entries, mod, batch_size: 100) end)
(Report |> preload([:user, :admin]) |> Repo.all() |> Polymorphic.load_polymorphic(reportable: [reportable_id: :reportable_type]) |> Enum.map(&Elasticsearch.index_document(&1, Report)))