diff --git a/lib/outlook/translations/translation.ex b/lib/outlook/translations/translation.ex index 2cd972c..225cd1f 100644 --- a/lib/outlook/translations/translation.ex +++ b/lib/outlook/translations/translation.ex @@ -26,5 +26,8 @@ defmodule Outlook.Translations.Translation do |> cast(attrs, [:lang, :title, :teaser, :date, :public, :unauthorized]) |> cast(attrs, [:content], force_changes: true) |> validate_required([:lang, :title, :teaser, :content, :date, :public, :unauthorized]) + |> unique_constraint([:lang, :article_id], + message: "translation for this language already exists", + name: :article_id_lang_unique_index) end end diff --git a/priv/repo/migrations/20221230170041_add_lang_article_id_unique_index_to_translations.exs b/priv/repo/migrations/20221230170041_add_lang_article_id_unique_index_to_translations.exs new file mode 100644 index 0000000..d81ffc4 --- /dev/null +++ b/priv/repo/migrations/20221230170041_add_lang_article_id_unique_index_to_translations.exs @@ -0,0 +1,7 @@ +defmodule Outlook.Repo.Migrations.AddLangArticleIdUniqueIndexToTranslations do + use Ecto.Migration + + def change do + create unique_index(:translations, [:article_id, :lang], name: :article_id_lang_unique_index) + end +end