improvement: add SqliteMigrationDefault

This commit is contained in:
Zach Daniel 2023-10-12 15:00:21 -04:00
parent 22ae9b394f
commit 2229285757
4 changed files with 16 additions and 16 deletions

View file

@ -1,4 +1,4 @@
defprotocol EctoMigrationDefault do
defprotocol SqliteMigrationDefault do
@moduledoc """
Allows configuring how values are translated to default values in migrations.
@ -9,7 +9,7 @@ defprotocol EctoMigrationDefault do
def to_default(value)
end
defimpl EctoMigrationDefault, for: Any do
defimpl SqliteMigrationDefault, for: Any do
require Logger
def to_default(value) do
@ -22,7 +22,7 @@ defimpl EctoMigrationDefault, for: Any do
The default value in the migration will be set to `nil` and you can edit
your migration accordingly.
To prevent this warning, implement the `EctoMigrationDefault` protocol
To prevent this warning, implement the `SqliteMigrationDefault` protocol
for the appropriate Elixir type in your Ash project, or configure its
default value in `migration_defaults` in the sqlite section. Use `\\\"nil\\\"`
for no default.
@ -32,55 +32,55 @@ defimpl EctoMigrationDefault, for: Any do
end
end
defimpl EctoMigrationDefault, for: Integer do
defimpl SqliteMigrationDefault, for: Integer do
def to_default(value) do
to_string(value)
end
end
defimpl EctoMigrationDefault, for: Float do
defimpl SqliteMigrationDefault, for: Float do
def to_default(value) do
to_string(value)
end
end
defimpl EctoMigrationDefault, for: Decimal do
defimpl SqliteMigrationDefault, for: Decimal do
def to_default(value) do
~s["#{value}"]
end
end
defimpl EctoMigrationDefault, for: BitString do
defimpl SqliteMigrationDefault, for: BitString do
def to_default(value) do
inspect(value)
end
end
defimpl EctoMigrationDefault, for: DateTime do
defimpl SqliteMigrationDefault, for: DateTime do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: NaiveDateTime do
defimpl SqliteMigrationDefault, for: NaiveDateTime do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Date do
defimpl SqliteMigrationDefault, for: Date do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Time do
defimpl SqliteMigrationDefault, for: Time do
def to_default(value) do
~s[fragment("'#{to_string(value)}'")]
end
end
defimpl EctoMigrationDefault, for: Atom do
defimpl SqliteMigrationDefault, for: Atom do
def to_default(value) when value in [nil, true, false], do: inspect(value)
def to_default(value) do

View file

@ -2301,7 +2301,7 @@ defmodule AshSqlite.MigrationGenerator do
default
:error ->
EctoMigrationDefault.to_default(value)
SqliteMigrationDefault.to_default(value)
end
default ->

View file

@ -157,7 +157,7 @@ defmodule AshSqlite.MixProject do
AshSqlite.Type
],
"Sqlite Migrations": [
EctoMigrationDefault
SqliteMigrationDefault
],
Expressions: [
AshSqlite.Functions.Fragment,

View file

@ -690,7 +690,7 @@ defmodule AshSqlite.MigrationGeneratorTest do
end)
end
test "when default value is specified that implements EctoMigrationDefault" do
test "when default value is specified that implements SqliteMigrationDefault" do
defposts do
attributes do
uuid_primary_key(:id)
@ -751,7 +751,7 @@ defmodule AshSqlite.MigrationGeneratorTest do
~S[add :enabled, :boolean, default: false]
end
test "when default value is specified that does not implement EctoMigrationDefault" do
test "when default value is specified that does not implement SqliteMigrationDefault" do
defposts do
attributes do
uuid_primary_key(:id)