ash_postgres/lib/ecto_migration_default.ex

47 lines
968 B
Elixir

defprotocol EctoMigrationDefault do
def to_default(value)
end
defimpl EctoMigrationDefault, for: Integer do
def to_default(value) do
to_string(value)
end
end
defimpl EctoMigrationDefault, for: BitString do
def to_default(value) do
inspect(value)
end
end
defimpl EctoMigrationDefault, for: DateTime do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: NaiveDateTime do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Date do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Time do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Atom do
def to_default(value) when value in [nil, true, false], do: inspect(value)
def to_default(value) do
inspect(to_string(value))
end
end