diff --git a/lib/migration_generator/migration_generator.ex b/lib/migration_generator/migration_generator.ex index 05bbff64..2e6f1163 100644 --- a/lib/migration_generator/migration_generator.ex +++ b/lib/migration_generator/migration_generator.ex @@ -251,8 +251,18 @@ defmodule AshPostgres.MigrationGenerator do extensions_snapshot[:ash_functions_version] ) - {_ext_name, version, up_fn, _down_fn} when is_function(up_fn, 1) -> - up_fn.(version) + {ext_name, _version, up_fn, _down_fn} when is_function(up_fn, 1) -> + current_version = + Enum.find_value(extensions_snapshot[:installed] || [], 0, fn name -> + with ["", "v" <> version] <- String.split(name, to_string(ext_name)), + {integer, ""} <- Integer.parse(version) do + integer + else + _ -> nil + end + end) + + up_fn.(current_version) extension -> "execute(\"CREATE EXTENSION IF NOT EXISTS \\\"#{extension}\\\"\")"