Skip to content

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

@darrenklein

Description

@darrenklein

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedquestionto-doFeatures/tasks that we'd like to add to the adapter.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions