lib/mix/south.ex

defmodule Mix.Tasks.Xmeta.South do
    use Mix.Task

    def run(arg \\ []) do
      Mix.shell.cmd("mix run -e Xmeta.South.Migrations.run", arg)
    end
end

defmodule Mix.Tasks.Xmeta.Migrate do
  use Mix.Task

  @impl true
  def run(args, migrator \\ &Ecto.Migrator.run/4) do
    check = Xmeta.South.Migrations.can_check?()
    res = Mix.Tasks.Ecto.Migrate.run(args, migrator) 
    if res == :ok and check == false do
      Xmeta.South.Migrations.init_migrations_file()
    end
  end
end