Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider adding full support for lock_for_migrations/4 (Ecto 3) #34

Open
darrenklein opened this issue Feb 23, 2020 · 0 comments
Open
Labels
help wanted question to-do Features/tasks that we'd like to add to the adapter.

Comments

@darrenklein
Copy link
Contributor

darrenklein commented Feb 23, 2020

As of the initial alpha release with Ecto 3 support, 624bffb, we have limited support for lock_for_migrations/4 - lock_for_migrations/4 is a @callback that was implemented in Ecto 3 for Ecto.Adapter.Migration, but its full implementation was not critical to making the upgrade from Ecto 2 to Ecto 3 support.

At the moment, we raise in the event that a user calls this method while having provided a configuration option for :migration_lock:

@impl Ecto.Adapter.Migration
def lock_for_migrations(%{opts: adapter_opts} = _meta, query, _opts, callback) do
  # TODO - consider adding support for this?
  if Keyword.get(adapter_opts, :migration_lock) do
    raise "#{inspect __MODULE__}.lock_for_migrations error: #{inspect __MODULE__} does not currently support migration table lock; please remove the :migration_lock option from your repo configuration or set it to nil"
  else
    callback.(query)
  end
end

Is Ecto's concept of lock_for_migrations something that is conceptually appropriate to adapt for use in DynamoDB? If so, it should be addressed; otherwise, continuing to raise in the event that a user has provided a :migration_lock option is probably fine.

@darrenklein darrenklein added help wanted question to-do Features/tasks that we'd like to add to the adapter. labels Feb 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted question to-do Features/tasks that we'd like to add to the adapter.
Projects
None yet
Development

No branches or pull requests

1 participant