seedex v0.3.0 Seedex View Source

Functions to populate database with seed data.

Link to this section Summary

Link to this section Functions

Link to this function

seed(module, constraints \\ [:id], data \\ [], process \\ nil) View Source
seed(
  module :: atom(),
  constraints :: [atom()],
  data :: [map()],
  process :: (struct() -> struct())
) :: :ok

seed/3 inserts data in the given table

Arguments

  • module - The module containing the Ecto schema.
  • contraints - The fields used to idenfity a record. The record will be updated if a record with matching fields already exist. The default value is [:id]
  • data - The data to insert. It should be a list of maps. If it is not passed, a single record will be created using the function passed.
  • process - A function to post-process each created record. It is required only if data is omitted.

Examples

  seed MyApp.Point, [:x, :y], fn point ->
    point
    |> Map.put(:x, 4)
    |> Map.put(:y, 7)
    |> Map.put(:name, "Home")
  end

  seed MyApp.User, [
    %{name: "Daniel", age: 26},
    %{name: "Ai", age: 24}
  ]
Link to this function

seed_once(module, constraints \\ [:id], data \\ [], process \\ nil) View Source
seed_once(
  module :: atom(),
  constraints :: [atom()],
  data :: (struct() -> struct()) | [map()],
  process :: (struct() -> struct())
) :: :ok

Same as seed/3 but does not update the record if it already exists