@@ -3384,29 +3384,35 @@ defmodule AshPostgres.MigrationGenerator do
3384
3384
references
3385
3385
|> Map . update! ( :on_delete , & ( & 1 && references_on_delete_to_binary ( & 1 ) ) )
3386
3386
end )
3387
- |> Map . update! ( :type , fn type -> sanitize_type ( type , attribute [ :size ] ) end )
3387
+ |> Map . update! ( :type , fn type ->
3388
+ sanitize_type ( type , attribute [ :size ] , attribute [ :precision ] , attribute [ :scale ] )
3389
+ end )
3388
3390
end
3389
3391
3390
3392
defp references_on_delete_to_binary ( value ) when is_atom ( value ) , do: value
3391
3393
defp references_on_delete_to_binary ( { :nilify , columns } ) , do: [ :nilify , columns ]
3392
3394
3393
- defp sanitize_type ( { :array , type } , size ) do
3394
- [ "array" , sanitize_type ( type , size ) ]
3395
+ defp sanitize_type ( { :array , type } , size , scale , precision ) do
3396
+ [ "array" , sanitize_type ( type , size , scale , precision ) ]
3395
3397
end
3396
3398
3397
- defp sanitize_type ( :varchar , size ) when not is_nil ( size ) do
3399
+ defp sanitize_type ( :varchar , size , _scale , _precision ) when not is_nil ( size ) do
3398
3400
[ "varchar" , size ]
3399
3401
end
3400
3402
3401
- defp sanitize_type ( :binary , size ) when not is_nil ( size ) do
3403
+ defp sanitize_type ( :binary , size , _scale , _precision ) when not is_nil ( size ) do
3402
3404
[ "binary" , size ]
3403
3405
end
3404
3406
3405
- defp sanitize_type ( type , size ) when is_atom ( type ) and is_integer ( size ) do
3406
- [ sanitize_type ( type , nil ) , size ]
3407
+ defp sanitize_type ( :decimal , _size , scale , precision ) do
3408
+ [ "decimal" , scale , precision ] |> Enum . reject ( & is_nil / 1 )
3409
+ end
3410
+
3411
+ defp sanitize_type ( type , size , precision , decimal ) when is_atom ( type ) and is_integer ( size ) do
3412
+ [ sanitize_type ( type , nil , precision , decimal ) , size ]
3407
3413
end
3408
3414
3409
- defp sanitize_type ( type , _ ) do
3415
+ defp sanitize_type ( type , _ , _ , _ ) do
3410
3416
type
3411
3417
end
3412
3418
0 commit comments