Was ist der korrekte Weg, um Fremdschlüssel zu implementieren, die sich bei einer Ecto-Migration auf ihre eigene Tabelle beziehen?Elixir Ecto: Wie erstelle ich einen selbstreferentiellen Fremdschlüssel?
z.B. Ich möchte eine Tabelle erstellen, in der jede Zeile auf eine "Eltern" -Zeile in derselben Tabelle verweisen kann. (Eine Möglichkeit, hierarchische Daten zu tun, es gibt viele andere Möglichkeiten.)
Aber wenn ich dies habe in meinem changeset, erhalte ich viele Fehler, wenn mix ecto.migrate
ausgeführt wird:
create_if_not_exists table(:perms, prefix: :accts) do
add :title, :string, size: 64, null: false
add :description, :text
add :parent_id, :integer, references(:perms)
end
Die Fehlermeldung beginnt mit (UndefinedFunctionError) undefined function Ecto.Migration.Reference.fetch/2 (Ecto.Migration.Reference does not implement the Access behaviour)
bevor GenServer beendet wird. (Dies tritt unter ecto 1.1.5 und 2.0.0-beta2 auf.)