Configuring Ash Postgres to use usec date times

config :ash, :utc_datetime_type, :datetime

I’m doing this configuration in my project, I can’t remember why, it was probably in one of the official guides.

My question is: is this using millisecond or second precision timestamps? What other options are there instead of :datetime?

Ah, interesting…thats pretty frustrating. That should say config :ash_graphql, ...

Here is the relevant error message if its not set


   No type configured for utc_datetimes!

    The existing default of using `:naive_datetime` for `:utc_datetime` and `:utc_datetime_usec` is being deprecated.

    To prevent accidental API breakages, we are requiring that you configure your selected type for these, via

        # This was the previous default, so use this if you want to ensure no unintended
        # change in your API, although switching to `:datetime` eventually is suggested.
        config :ash, :utc_datetime_type, :naive_datetime

        or

        config :ash, :utc_datetime_type, :datetime

    When the 1.0 version of ash_graphql is released, the default will be changed to `:datetime`, and this error message will
    no longer be shown (but any configuration set will be retained indefinitely).
1 Like

To be clear, it’s configured wrongly on our end in :ash_graphql.

Sorry, I’m still not clear if :datetime is second or usec

Its referring to absinthe’s builtin :datetime type (the graphql type, not the ash type), which ISO8601 formats any given datetime, so IIRC it will have microseconds or not, depending on what the datetime given to it has.

1 Like