defmodule TestTablesSchema do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "test_tables" do field(:test_field_one, :string, size: 100, null: false) field(:test_field_two, :string, size: 100, null: false) timestamps(type: :utc_datetime) end @all_fields ~w(test_field_one test_field_two)a def changeset(struct, params \\ %{}) do struct |> cast(params, @all_fields) |> validate_required(@all_fields) |> validate_length(:test_field_one, min: 10) |> validate_length(:test_field_two, min: 10) end end