使用Elixir Ecto,如何在迁移中添加has_many关系?

时间:2015-03-14 19:44:30

标签: elixir ecto

我想写这样的东西:

defmodule JobHunt.Repo.Migrations.CompaniesHaveManyJobs do
  use Ecto.Migration

  def change do
    alter table (:companies) do
      add :jobs, :has_many, Job
    end
  end
end

使用此迁移运行mix ecto.migrate会出错,那么正确的方法是什么?

2 个答案:

答案 0 :(得分:9)

我们可以使用这种方式,因为文档建议:

alter table(:jobs) do
  add :company_id, references(:companies)
end

我不确定这里是否需要复数版本:references(:companies)phermacy(单数)

对我不起作用

答案 1 :(得分:8)

您应该将所需的外键添加到jobs表中:

defmodule JobHunt.Repo.Migrations.CompaniesHaveManyJobs do
  use Ecto.Migration

  def change do
    alter table(:jobs) do
      add :company_id, :integer
    end
  end
end