From 07e475b1117b32ab419cc8ce8523d6442b6d4a89 Mon Sep 17 00:00:00 2001 From: codevictory Date: Sat, 3 Apr 2021 21:47:24 +0300 Subject: [PATCH] Many-to-many between performers and performances. --- lib/runosaari/core/performer_performance.ex | 18 ++++++++++++++++++ ...0403184119_create_performer_performance.exs | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lib/runosaari/core/performer_performance.ex create mode 100644 priv/repo/migrations/20210403184119_create_performer_performance.exs diff --git a/lib/runosaari/core/performer_performance.ex b/lib/runosaari/core/performer_performance.ex new file mode 100644 index 0000000..9fe24d5 --- /dev/null +++ b/lib/runosaari/core/performer_performance.ex @@ -0,0 +1,18 @@ +defmodule Runosaari.Core.PerformerPerformance do + use Ecto.Schema + import Ecto.Changeset + + schema "performer_performance" do + field :performer_id, :id + field :performance_id, :id + + timestamps() + end + + @doc false + def changeset(performer_performance, attrs) do + performer_performance + |> cast(attrs, []) + |> validate_required([]) + end +end diff --git a/priv/repo/migrations/20210403184119_create_performer_performance.exs b/priv/repo/migrations/20210403184119_create_performer_performance.exs new file mode 100644 index 0000000..240d5c5 --- /dev/null +++ b/priv/repo/migrations/20210403184119_create_performer_performance.exs @@ -0,0 +1,13 @@ +defmodule Runosaari.Repo.Migrations.CreatePerformerPerformance do + use Ecto.Migration + + def change do + create table(:performer_performance, primary_key: false) do + add :performer_id, references(:performers, on_delete: :nothing), primary_key: true + add :performance_id, references(:performances, on_delete: :nothing), primary_key: true + end + + create index(:performer_performance, [:performer_id]) + create index(:performer_performance, [:performance_id]) + end +end