Current section

Files

Jump to
blossom lib blossom migrations postgres.ex
Raw

lib/blossom/migrations/postgres.ex

defmodule Blossom.Migrations.Postgres do
use Ecto.Migration
alias Blossom.Migrations.Postgres
def change(range, direction) do
for index <- range do
pad_idx = String.pad_leading(Integer.to_string(index), 2, "0")
[__MODULE__, "V#{pad_idx}"]
|> Module.concat()
|> apply(direction, [[]])
end
end
def from_version(opts) do
if opts[:from_version] do
opts[:from_version]
else
0
end
end
def to_version(opts) do
if opts[:to_version] do
opts[:to_version]
else
1
end
end
def up(opts) do
from = Postgres.from_version(opts) + 1
to = Postgres.to_version(opts)
Postgres.change(from..to, :up)
end
def down(opts) do
from = Postgres.from_version(opts)
to = Postgres.to_version(opts) + 1
Postgres.change(from..to//-1, :down)
end
end