Ecto multiple repos-- how to ignore one for migrations

I have an app configured

config :my_app,
  ecto_repos: [MyApp.Repo, MyApp.LegacyRepo]

MyApp.Repo’s migrations are managed by Ecto. MyApp.LegacyRepo migrations are handled by Rails and error out on mix ecto.migrate

Is there a way to specify “I have two repos, but please ignore the second for migrations”?


Do you want to ignore them with mix ecto.migrate? Not sure how to do that, but in you need to pass a repo to run migrations for, so you can do it there, and it’s what usually gets suggested to be used with releases.

Oh, you can mix ecto.migrate -r Custom.Repo.


Thanks! This solves 80% of my issue.

I was able to update test/test_helper.rb in a phoenix app from "ecto.migrate", ["--quiet"]

to "ecto.migrate", ["-r", "MyApp.Repo", "--quiet"]

to get tests runs to just migrate the Repo I wanted, and not the other


I ran into this same question. It seems you can simply remove MyApp.LegacyRepo from ecto_repos in your config. It will still be usable in your codebase but it will not be used for migrations as that is what the ecto_repos key is mainly used for.