Ecto 外多重回购——迁移时如何忽略一个

Ecto 外多重回购——迁移时如何忽略一个,ecto,Ecto,我配置了一个应用程序 config :my_app, ecto_repos: [MyApp.Repo, MyApp.LegacyRepo] MyApp.Repo的迁移由Ecto管理。 MyApp.LegacyRepo迁移由Rails处理,并在mix-exto.migrate上出错 有没有办法指定“我有两个repo,但请忽略第二个用于迁移的repo”您可以像这样将repo传递到mix-exto.migrate中 mix ecto.migrate -r MyApp.Repo Mix.Task

我配置了一个应用程序

config :my_app,
  ecto_repos: [MyApp.Repo, MyApp.LegacyRepo]
MyApp.Repo的迁移由Ecto管理。 MyApp.LegacyRepo迁移由Rails处理,并在
mix-exto.migrate上出错


有没有办法指定“我有两个repo,但请忽略第二个用于迁移的repo”

您可以像这样将repo传递到mix-exto.migrate中

mix ecto.migrate -r MyApp.Repo
Mix.Task.run "ecto.migrate", ["-r", "MyApp.Repo", "--quiet"]
您可以在phoenix应用程序中更新test/test_helper.ex,以便只运行一次这样的回购迁移

mix ecto.migrate -r MyApp.Repo
Mix.Task.run "ecto.migrate", ["-r", "MyApp.Repo", "--quiet"]

另一个选项是更改
config.exs
。把它改成

config :my_app, ecto_repos: [MyApp.Repo]
根据

要迁移的存储库是在 :当前应用程序配置中的EXTO_repos选项。然而,如果 -r选项,它将替换:exto_repos配置

在ecto_repos中没有MyApp.LegacyRepo不会阻止读取或写入或任何您期望的内容。它只是配置迁移任务