Нет связи между таблицами, показанными на диаграмме схемы при использовании add_reference в Rails - PullRequest
0 голосов
/ 31 января 2019

Я работаю над приложением Rails, где мне нужно добавить некоторые внешние ключи для существующих столбцов из миграций Rails, и немногие люди также работают над этим.Я добавляю этот путь:

class AddUserRefToEvents < ActiveRecord::Migration[5.2]
  def change
    add_foreign_key :events, :users, name: :index_events_on_user_id
  end
end

, и один из моих помощников добавляет этот путь:

class AddUserToParts < ActiveRecord::Migration[5.0]
  def up
    add_reference :parts, :user
  end

  def down
    remove_reference :parts, :user
  end
end

Когда мы используем SchemaCrawler для построения схемы схемы, между пользователем строится связьи события (с add_foreign_key), но нет никакой связи между пользователями и частями (когда added add_reference).

Можете ли вы сказать мне, почему?Можем ли мы использовать оба (со ссылкой на эту ссылку ) или только add_foreign_key?Пожалуйста, помогите.

1 Ответ

0 голосов
/ 31 января 2019

Дело в том, что add_reference не не добавляет внешний ключ по умолчанию.Документы API для v5.2 или v5.0 утверждают, что хэш опций может включать ключ :foreign_key для установки соответствующего ограничения внешнего ключа.

Так, чтобы использовать add_reference, просто измените свой код, включив в качестве опции foreign_key: true.

add_reference :parts, :user, foreign_key: true
...