Skip to content

Commit 324b134

Browse files
committed
enforce unique result for each index
1 parent 914b91e commit 324b134

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

scripts/database_migration.exs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ defmodule DatabaseMigration do
824824

825825
indexes =
826826
Enum.reduce(@index_fields, %{}, fn {table, columns}, acc ->
827-
table_indexes = Map.new(columns, fn column -> {column, index_by_field(db[table], column)} end)
827+
table_indexes = Map.new(columns, fn column -> {column, index_by_field(db, table, column)} end)
828828
Map.put(acc, table, table_indexes)
829829
end)
830830

@@ -913,10 +913,17 @@ defmodule DatabaseMigration do
913913
Map.merge(merged1, merged2)
914914
end
915915

916-
defp index_by_field(data, field) do
917-
data
916+
defp index_by_field(db, table, field) do
917+
db[table]
918+
|> Enum.reject(fn row -> table == "StripeCustomer" and row["region"] == "EU" end)
918919
|> Enum.group_by(&Map.get(&1, field))
919-
|> Map.new(fn {k, v} -> {k, List.first(v)} end)
920+
|> Map.new(fn {k, v} ->
921+
{k,
922+
case v do
923+
[v] -> v
924+
v -> raise "Unexpected number of entities for #{table}.#{field}: #{inspect(v)}"
925+
end}
926+
end)
920927
end
921928

922929
defp find_by_index(db, table, field, value) do

0 commit comments

Comments
 (0)