Packages

TasKafka is a background processing application written in Elixir and uses Kafka as a messaging backend.

Current section

Files

Jump to
taskafka lib taskafka mix tasks migrate.ex
Raw

lib/taskafka/mix/tasks/migrate.ex

defmodule Mix.Tasks.Migrate do
@moduledoc false
use Mix.Task
alias TasKafka.Mongo
alias TasKafka.Mongo.Migrator
require Logger
def run(_) do
{:ok, _} = Application.ensure_all_started(:mongodb)
{:ok, pid} =
Mongo.start_link(
name: :taskafka_mongo,
url: Application.get_env(:taskafka, :mongo)[:url],
pool: DBConnection.Poolboy
)
with :ok <- Migrator.migrate() do
Logger.info(IO.ANSI.green() <> "Migrations completed" <> IO.ANSI.default_color())
else
error ->
Logger.info(IO.ANSI.red() <> error <> IO.ANSI.default_color())
end
GenServer.stop(pid)
end
end