diff --git a/config/config.exs b/config/config.exs index a12f585c..b1a1bdea 100644 --- a/config/config.exs +++ b/config/config.exs @@ -12,7 +12,10 @@ config :elixir_boilerplate, ElixirBoilerplateWeb.Endpoint, pubsub_server: ElixirBoilerplate.PubSub, render_errors: [view: ElixirBoilerplateWeb.Errors, accepts: ~w(html json)] -config :elixir_boilerplate, ElixirBoilerplate.Repo, start_apps_before_migration: [:ssl] +config :elixir_boilerplate, ElixirBoilerplate.Repo, + migration_primary_key: [type: :binary_id, default: {:fragment, "gen_random_uuid()"}], + migration_timestamps: [type: :utc_datetime_usec], + start_apps_before_migration: [:ssl] config :elixir_boilerplate, Corsica, allow_headers: :all diff --git a/lib/elixir_boilerplate/schema.ex b/lib/elixir_boilerplate/schema.ex new file mode 100644 index 00000000..b16f8174 --- /dev/null +++ b/lib/elixir_boilerplate/schema.ex @@ -0,0 +1,15 @@ +defmodule ElixirBoilerplate.Schema do + defmacro __using__(_) do + quote do + use Ecto.Schema + + import Ecto.Changeset + + alias Ecto.{Schema, UUID} + + @primary_key {:id, :binary_id, autogenerate: true} + @foreign_key_type :binary_id + @timestamps_opts [type: :utc_datetime_usec] + end + end +end