Thank you all so much! this sums it up, once and for all !
So basically it’s just great that Ecto is enforcing saving DateTime values in utc with the utc_datetime, which I feel really positive about since it’s a standard development practice. I’ve seen no other library/framework enforcing it.
I made the following global changes to my Phoenix 1.5 app to use utc_datetime instead of naive_datetime by Ecto, both in schemas and migrations for anyone who may find it useful:
In config.exs, I added this:
config :myapp, MyApp.Repo, migration_timestamps: [type: :utc_datetime]
created a new schema.ex with the following code:
defmodule MyApp.Schema do
defmacro __using__(_) do
quote do
use Ecto.Schema
@timestamps_opts [type: :utc_datetime]
end
end
end
And in my models everywhere, I replaced use Ecto.Schema with use MyApp.Schema
And, done!






















