Yes, but I think loading default data belongs to seed :-) foreman does that in initializer and therefore have to manually load classes (to find descendants). I think the reason in foreman is that some part relies on settings so it should be created as soon as possible. However this is not our case. We create a default setting (with nil value) that just must be present so we can can change the value using API.

But maybe the Setting table check here is useless, seed is meant to be run on migrated db, right?