Split seeds into bootstrap and dev-only

This commit is contained in:
Moritz 2026-03-03 15:32:51 +01:00
parent 0b23b816fb
commit edd8657c92
Signed by: moritz
GPG key ID: 1020A035E5DD0824
5 changed files with 824 additions and 805 deletions

View file

@ -269,6 +269,16 @@ defmodule Mv.Membership.Member do
end
```
### 1.2.1 Database Seeds
Seeds are split into **bootstrap** and **dev**:
- **`priv/repo/seeds.exs`** Entrypoint. Runs `seeds_bootstrap.exs` always; runs `seeds_dev.exs` only when `Mix.env()` is `:dev` or `:test`.
- **`priv/repo/seeds_bootstrap.exs`** Creates only data required for system startup: membership fee types, custom fields, roles, admin user, system user, global settings (including default membership fee type). No members, no groups. Used in all environments (dev, test, prod).
- **`priv/repo/seeds_dev.exs`** Creates 20 sample members, groups, and optional custom field values. Run only in dev and test.
In production, running `mix run priv/repo/seeds.exs` executes only the bootstrap part (no dev seeds).
### 1.3 Domain-Driven Design
**Use Ash Domains for Context Boundaries:**