From a98d921848b6b74be662ab21da8bef2855c481ff Mon Sep 17 00:00:00 2001 From: Moritz Date: Wed, 4 Mar 2026 17:08:27 +0100 Subject: [PATCH] Seeds: scope compiler_options to seed run, restore in after Remove global ignore_module_conflict from mix.exs. Set it only in seeds.exs during eval_file and restore via try/after so crashes do not leave the option enabled. --- mix.exs | 2 -- priv/repo/seeds.exs | 24 ++++++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/mix.exs b/mix.exs index 364396a..d200150 100644 --- a/mix.exs +++ b/mix.exs @@ -2,8 +2,6 @@ defmodule Mv.MixProject do use Mix.Project def project do - Code.compiler_options(ignore_module_conflict: true) - [ app: :mv, version: "0.1.0", diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index fda4586..44df447 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -4,16 +4,24 @@ # # Bootstrap runs in all environments. Dev seeds (members, groups, sample data) # run only in dev and test. +# +# Compiler option ignore_module_conflict is set only during seed evaluation +# so that eval_file of bootstrap/dev does not emit "redefining module" warnings; +# it is always restored in `after` to avoid hiding real conflicts elsewhere. +prev = Code.compiler_options() Code.compiler_options(ignore_module_conflict: true) -# Always run bootstrap (fee types, custom fields, roles, admin, system user, settings) -Code.eval_file("priv/repo/seeds_bootstrap.exs") +try do + # Always run bootstrap (fee types, custom fields, roles, admin, system user, settings) + Code.eval_file("priv/repo/seeds_bootstrap.exs") -# In dev and test only: run dev seeds (20 members, groups, custom field values) -if Mix.env() in [:dev, :test] do - Code.eval_file("priv/repo/seeds_dev.exs") + # In dev and test only: run dev seeds (20 members, groups, custom field values) + if Mix.env() in [:dev, :test] do + Code.eval_file("priv/repo/seeds_dev.exs") + end + + IO.puts("✅ All seeds completed.") +after + Code.compiler_options(prev) end - -IO.puts("✅ All seeds completed.") -Code.compiler_options(ignore_module_conflict: false)