Эликсир Экто: проверить принадлежность между двумя разными базами данных - PullRequest
0 голосов
/ 13 декабря 2018

В моем зонтичном приложении с двумя приложениями, каждое из которых основано на своей собственной БД ...

У меня есть схема в app2, ссылающаяся на uuid из объекта app1.

DB1 :
  Table : parent
    parent_id: uuid
    name: string

DB2 :
Table : child
    child_id: uuid
    parent_id: uuid
    name: string

Тогда схема:

  schema "child" do
    field :name, :string
    belongs_to(:parent, Parent, type: :binary_id)

    timestamps()
  end

Как сделать так, чтобы набор изменений подтвердил, что parent_id действителен и существует в его таблице?Я пробовал кое-что, например assoc_constraint(:parent), но я знал, что это не сработает ... Может быть, мне просто нужно переосмыслить отношения и то, как они работают.

Спасибо, впереди.

1 Ответ

0 голосов
/ 13 декабря 2018

Краткий ответ: нет, невозможно установить связи между различными базами данных из коробки.Таким образом, вы не можете иметь это belongs_to(:parent, Parent, type: :binary_id) в Child, если parent - это таблица в другой базе данных.

Длинный ответ состоит в том, что это может быть возможным, в зависимости от вашегоСУБД, для определения отношений между базами данных.Например, Postgres имеет некоторые расширения, такие как dblink и postgres_fdw, которые кратко описаны здесь .

...