Is it possible to incrementally upgrade to Ecto 3.x?

So I’ve been having some trouble upgrading to Ecto 3.x (which I posted about in Strange DBConnection.ConnectionError with Ecto 3.0.6). Since before I posted that I’ve been maintaining a “upgrade-to-ecto-3” branch locally, but I have been getting an annoying amount of merge conflicts as other development happens in this repository. On this branch (which does have some debugging statements) I currently have 131 files changed, 376 insertions(+), 303 deletions(-), by far the largest offender is the change from :naive_datetime to :naive_datetime_usec which the second largest being the change to arguments that Ecto.Multi.run receives. Is there any way to get :naive_datetime_usec in Ecto 2.x? Maybe it could be backported there?

2 Likes

You might be able to create your own compatibility shims?

Eg use a module attribute to switch between the DateTime data types and a function to wrap the multi calls.